# ストリーミング セッション イベント

Copilot エージェントが実行するすべてのアクション (思考、コードの記述、ツールの実行) は、サブスクライブできるセッション イベントとして出力されます。 このガイドは、SDK ソースを読み取らずに予想されるデータを正確に把握できるように、各イベントの種類のフィールド レベルのリファレンスです。

<!-- markdownlint-disable GHD046 GHD005 -->

<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->

## Overview

セッションで`streaming: true`が設定されると、SDK は、**一時的な**イベント (デルタ、進行状況の更新) をリアルタイムで、**永続的な**イベント (完全なメッセージ、ツールの結果) と共に出力します。 すべてのイベントは共通のエンベロープを共有し、その形状がイベント `data`に依存する`type`ペイロードを運びます。

![図: 説明されたプロセスを示すシーケンス図。](/assets/images/help/copilot/copilot-sdk/features-streaming-events-diagram-0.png)

| 概念                  | Description                                                         |
| ------------------- | ------------------------------------------------------------------- |
| **エフェメラル イベント**     | 過渡;はリアルタイムでストリーミングされますが、セッション ログには保持 **されません** 。 セッションの再開時に再生されません。 |
| **永続化されたイベント**      | ディスク上のセッション イベント ログに保存されます。 セッションの再開時に再生されます。                       |
| **Delta イベント**      | 一時的なストリーミングデータチャンク（テキストまたは推論） 差分を蓄積して完全なコンテンツを構築します。                |
| **`parentId` チェーン** | 各イベントの `parentId` は前のイベントを指し示し、ウォーク可能なリンクリストを形成します。                 |

## イベント エンベロープ

種類に関係なく、すべてのセッション イベントには次のフィールドが含まれます。

| フィールド               | タイプ              | Description                                                                 |
| ------------------- | ---------------- | --------------------------------------------------------------------------- |
| `id`                |                  |                                                                             |
| `string` (UUID v4)  | 一意のイベント識別子       |                                                                             |
| `timestamp`         |                  |                                                                             |
| `string` (ISO 8601) | イベントが作成されたとき     |                                                                             |
| `parentId`          | `string \| null` | チェーン内の前のイベントの ID。最初のイベントの`null`                                             |
| `agentId`           | `string?`        | サブエージェントから発生したイベントのサブエージェント インスタンス ID。ルート/メイン エージェントとセッション レベルのイベントには存在しません |
| `ephemeral`         | `boolean?`       | 一時的なイベントの場合`true`。永続化されたイベントの場合は不在または`false`                                |
| `type`              | `string`         | イベント型識別子 (以下の表を参照)                                                          |
| `data`              | `object`         | イベント固有のペイロード                                                                |

## イベントに登録する

<div class="ghd-codetabs">
<div class="ghd-codetab" data-lang="typescript" data-label="TypeScript"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">TypeScript</div>

```typescript
// All events
session.on((event) => {
    console.log(event.type, event.data);
});

// Specific event type — data is narrowed automatically
session.on("assistant.message_delta", (event) => {
    process.stdout.write(event.data.deltaContent);
});
```

</div>

<div class="ghd-codetab" data-lang="python" data-label="Python"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Python</div>

```python
from copilot.session_events import SessionEventType

def handle(event):
    if event.type == SessionEventType.ASSISTANT_MESSAGE_DELTA:
        print(event.data.delta_content, end="", flush=True)

session.on(handle)
```

</div>

<div class="ghd-codetab" data-lang="go" data-label="Go"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Go</div>

```golang
session.On(func(event copilot.SessionEvent) {
    if d, ok := event.Data.(*copilot.AssistantMessageDeltaData); ok {
        fmt.Print(d.DeltaContent)
    }
})
```

</div>

<div class="ghd-codetab" data-lang="dotnet" data-label=".NET"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">.NET</div>

```csharp
session.On<SessionEvent>(evt =>
{
    if (evt is AssistantMessageDeltaEvent delta)
    {
        Console.Write(delta.Data.DeltaContent);
    }
});
```

</div>

<div class="ghd-codetab" data-lang="java" data-label="Java"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Java</div>

<!-- docs-validate: skip -->

```java
// All events
session.on(event -> System.out.println(event.getType()));

// Specific event type — data is narrowed to the matching class
session.on(AssistantMessageDeltaEvent.class, event ->
    System.out.print(event.getData().deltaContent())
);
```

</div>

</div>

> \[!TIP]
> **(Python/Go)** これらの SDK では、個別のイベントごとのデータ型 (たとえば、`AssistantMessageDeltaData`) が使用されるため、各種類に関連するフィールドのみが存在します。
>
> \[!TIP]
> **(.NET)** .NET SDK では、イベントごとに個別の厳密に型指定されたデータ クラス (`AssistantMessageDeltaData` など) が使用されるため、各型に関連するフィールドのみが存在します。
>
> \[!TIP]
> **(TypeScript)** TypeScript SDK では判別共用体が使用されます。 `event.type`で一致すると、 `data` ペイロードは自動的に正しい図形に絞り込まれます。

## 親エージェントの応答のみをレンダリングする

サブエージェント イベントは親セッション ストリームを共有し、エンベロープ レベルの `agentId`を含めます。 ルート/メイン エージェント イベントとセッション レベルのイベントでは `agentId`が省略されるため、メイン チャット レンダラーは、 `agentId` が設定されているアシスタント イベントを無視し、代わりにそれらのイベントをトレースまたは進行状況 UI にルーティングできます。

<div class="ghd-codetabs">
<div class="ghd-codetab" data-lang="typescript" data-label="TypeScript"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">TypeScript</div>

```typescript
import type { CopilotSession } from "@github/copilot-sdk";

export function subscribeParentResponse(session: CopilotSession): void {
    session.on("assistant.message_delta", (event) => {
        if (!event.agentId) {
            process.stdout.write(event.data.deltaContent);
        }
    });
}
```

</div>

<div class="ghd-codetab" data-lang="python" data-label="Python"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Python</div>

```python
from copilot import CopilotSession, SessionEvent, SessionEventType
from copilot.session_events import AssistantMessageDeltaData

def subscribe_parent_response(session: CopilotSession) -> None:
    def handle(event: SessionEvent) -> None:
        if event.type == SessionEventType.ASSISTANT_MESSAGE_DELTA and event.agent_id is None:
            data = event.data
            if isinstance(data, AssistantMessageDeltaData):
                print(data.delta_content, end="", flush=True)

    session.on(handle)
```

</div>

<div class="ghd-codetab" data-lang="go" data-label="Go"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Go</div>

```golang
package example

import (
    "fmt"

    copilot "github.com/github/copilot-sdk/go"
)

func subscribeParentResponse(session *copilot.Session) {
    session.On(func(event copilot.SessionEvent) {
        if event.AgentID != nil {
            return
        }

        if d, ok := event.Data.(*copilot.AssistantMessageDeltaData); ok {
            fmt.Print(d.DeltaContent)
        }
    })
}
```

</div>

<div class="ghd-codetab" data-lang="dotnet" data-label=".NET"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">.NET</div>

```csharp
using System;
using GitHub.Copilot;

static class ParentAgentResponseExample
{
    public static void SubscribeParentResponse(CopilotSession session)
    {
        session.On<AssistantMessageDeltaEvent>(evt =>
        {
            if (evt.AgentId is null)
            {
                Console.Write(evt.Data.DeltaContent);
            }
        });
    }
}
```

</div>

<div class="ghd-codetab" data-lang="java" data-label="Java"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Java</div>

```java
import com.github.copilot.CopilotSession;
import com.github.copilot.generated.AssistantMessageDeltaEvent;

final class ParentAgentResponseExample {
    static void subscribeParentResponse(CopilotSession session) {
        session.on(AssistantMessageDeltaEvent.class, event -> {
            if (event.getAgentId() == null) {
                System.out.print(event.getData().deltaContent());
            }
        });
    }
}
```

</div>

<div class="ghd-codetab" data-lang="rust" data-label="Rust"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Rust</div>

```rust
use github_copilot_sdk::session::Session;

async fn subscribe_parent_response(session: &Session) {
    let mut events = session.subscribe();

    while let Ok(event) = events.recv().await {
        if event.event_type == "assistant.message_delta" && event.agent_id.is_none() {
            if let Some(delta) = event.data.get("deltaContent").and_then(|v| v.as_str()) {
                print!("{delta}");
            }
        }
    }
}
```

</div>

</div>

## アシスタント イベント

これらのイベントは、ターン スタートからストリーミング チャンク、最後のメッセージまで、エージェントの応答ライフサイクルを追跡します。

### `assistant.turn_start`

エージェントがターンの処理を開始したときに出力されます。

| データ フィールド                  | タイプ      | 必須 | Description               |
| -------------------------- | -------- | -- | ------------------------- |
| `turnId`                   | `string` | ✅  | ターン識別子 (通常は、文字列化されたターン番号) |
| `interactionId`            | `string` |    |                           |
| テレメトリ相関用の CAPI インタラクション ID |          |    |                           |

### `assistant.intent`

儚い。 エージェントが現在行っていることの簡単な説明。動作に応じて更新されます。

| データ フィールド | タイプ      | 必須 | Description                 |
| --------- | -------- | -- | --------------------------- |
| `intent`  | `string` | ✅  | 人間が判読できる意図 (例: "コードベースの探索") |

### `assistant.reasoning`

モデルから拡張思考ブロックを完成させます。 推論が完了した後に出力されます。

| データ フィールド     | タイプ      | 必須 | Description    |
| ------------- | -------- | -- | -------------- |
| `reasoningId` | `string` | ✅  | この推論ブロックの一意識別子 |
| `content`     | `string` | ✅  | 完全な拡張思考テキスト    |

### `assistant.reasoning_delta`

儚い。 リアルタイムでストリーミングされる、モデルの拡張思考の増分チャンク。

| データ フィールド      | タイプ      | 必須 | Description                           |
| -------------- | -------- | -- | ------------------------------------- |
| `reasoningId`  | `string` | ✅  | 対応する `assistant.reasoning` イベントと一致します |
| `deltaContent` | `string` | ✅  | 推論コンテンツに追加するテキストの一部                   |

### `assistant.message`

この LLM 呼び出しに対するアシスタントの完全な応答。 ツール呼び出し要求を含めることができます。

| データ フィールド                                           | タイプ             | 必須 | Description     |
| --------------------------------------------------- | --------------- | -- | --------------- |
| `messageId`                                         | `string`        | ✅  | このメッセージのユニーク識別子 |
| `content`                                           | `string`        | ✅  | アシスタントのテキスト応答   |
| `toolRequests`                                      | `ToolRequest[]` |    |                 |
| アシスタントが行いたいと思うツール呼び出し (下記参照)                        |                 |    |                 |
| `reasoningOpaque`                                   | `string`        |    |                 |
| 暗号化された拡張思考（アントロピックモデル）、セッションにバインドされた                |                 |    |                 |
| `reasoningText`                                     | `string`        |    |                 |
| 拡張思考から読み取り可能な推論テキスト                                 |                 |    |                 |
| `encryptedContent`                                  | `string`        |    |                 |
| 暗号化された推論コンテンツ (OpenAI モデル);session-bound            |                 |    |                 |
| `phase`                                             | `string`        |    |                 |
| 生成フェーズ (例: `"thinking"` と `"response"`)             |                 |    |                 |
| `outputTokens`                                      | `number`        |    |                 |
| API 応答からの実際の出力トークン数                                 |                 |    |                 |
| `interactionId`                                     | `string`        |    |                 |
| テレメトリ用の CAPI インタラクション ID                            |                 |    |                 |
| `parentToolCallId`                                  | `string`        |    |                 |
| Deprecated. サブエージェントの属性にエンベロープ レベルの `agentId` を使用する |                 |    |                 |

\*\*
`ToolRequest` フィールド：\*\*

| フィールド                                  | タイプ                      | 必須 | Description                            |
| -------------------------------------- | ------------------------ | -- | -------------------------------------- |
| `toolCallId`                           | `string`                 | ✅  | このツール呼び出しの一意の ID                       |
| `name`                                 | `string`                 | ✅  | ツール名 (例: `"bash"`、 `"edit"`、 `"grep"`) |
| `arguments`                            | `object`                 |    |                                        |
| ツールの解析された引数                            |                          |    |                                        |
| `type`                                 | `"function" \| "custom"` |    |                                        |
| 呼び出しの種類。存在しない場合は`"function"`が既定値となります。 |                          |    |                                        |

### `assistant.message_delta`

儚い。 リアルタイムでストリーミングされる、アシスタントのテキスト応答の増分チャンク。

| データ フィールド                                           | タイプ      | 必須 | Description                         |
| --------------------------------------------------- | -------- | -- | ----------------------------------- |
| `messageId`                                         | `string` | ✅  | 対応する `assistant.message` イベントと一致します |
| `deltaContent`                                      | `string` | ✅  | メッセージに追加するテキスト チャンク                 |
| `parentToolCallId`                                  | `string` |    |                                     |
| Deprecated. サブエージェントの属性にエンベロープ レベルの `agentId` を使用する |          |    |                                     |

### `assistant.turn_end`

エージェントがターンを完了したときに生成されます (すべてのツールの実行が完了し、最終的な応答が配信されます)。

| データ フィールド | タイプ      | 必須 | Description                            |
| --------- | -------- | -- | -------------------------------------- |
| `turnId`  | `string` | ✅  | 対応する `assistant.turn_start` イベントと一致します |

### `assistant.usage`

儚い。 個々の API 呼び出しのトークンの使用状況とコストに関する情報。

| データ フィールド                                                                  | タイプ                                                                        | 必須 | Description             |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -- | ----------------------- |
| `model`                                                                    | `string`                                                                   | ✅  | モデル識別子 (例: `"gpt-5.4"`) |
| `inputTokens`                                                              | `number`                                                                   |    |                         |
| 使用された入力トークン                                                                |                                                                            |    |                         |
| `outputTokens`                                                             | `number`                                                                   |    |                         |
| 生成された出力トークン                                                                |                                                                            |    |                         |
| `reasoningTokens`                                                          | `number`                                                                   |    |                         |
| 推論/考え方のチェーンに使用される出力トークン ( `outputTokens`のサブセット)                            |                                                                            |    |                         |
| `cacheReadTokens`                                                          | `number`                                                                   |    |                         |
| プロンプト キャッシュから読み取られたトークン                                                    |                                                                            |    |                         |
| `cacheWriteTokens`                                                         | `number`                                                                   |    |                         |
| プロンプト キャッシュに書き込まれたトークン                                                     |                                                                            |    |                         |
| `cacheExpiresAt`                                                           | `string`                                                                   |    |                         |
| このモデル呼び出しのプロンプトキャッシュが期限切れとなる日時の ISO 8601 タイムスタンプ                           |                                                                            |    |                         |
| `contentFilterTriggered`                                                   | `boolean`                                                                  |    |                         |
| 応答がブロックされたか、コンテンツ フィルターによって切り捨てられたか (`finish_reason === 'content_filter'`) |                                                                            |    |                         |
| `finishReason`                                                             | `string`                                                                   |    |                         |
| モデルの終了理由 (例: `"stop"`、 `"length"`、 `"tool_calls"`、 `"content_filter"`)     |                                                                            |    |                         |
| `cost`                                                                     | `number`                                                                   |    |                         |
| 請求のためのモデル乗算コスト                                                             |                                                                            |    |                         |
| `duration`                                                                 | `number`                                                                   |    |                         |
| API 呼び出し時間 (ミリ秒単位)                                                         |                                                                            |    |                         |
| `timeToFirstTokenMs`                                                       | `number`                                                                   |    |                         |
| 要求ディスパッチから最初に受信したトークンまでの時間 (ストリーミング待機時間)                                   |                                                                            |    |                         |
| `interTokenLatencyMs`                                                      | `number`                                                                   |    |                         |
| 連続するトークン間の平均待機時間 (ストリーミング スループット)                                          |                                                                            |    |                         |
| `reasoningEffort`                                                          | `string`                                                                   |    |                         |
| この呼び出しに使用される推論作業レベル (例: `"low"`、 `"medium"`、 `"high"`)                     |                                                                            |    |                         |
| `initiator`                                                                | `string`                                                                   |    |                         |
| この呼び出しをトリガーした内容 (例: `"sub-agent"`)、ユーザーが開始した場合は存在しない                       |                                                                            |    |                         |
| `apiCallId`                                                                | `string`                                                                   |    |                         |
| プロバイダーからの完了 ID (例: `chatcmpl-abc123`)                                      |                                                                            |    |                         |
| `serviceRequestId`                                                         | `string`                                                                   |    |                         |
| CAPI ログの関連付け用の Copilot サービス リクエスト ID (`x-copilot-service-request-id`)      |                                                                            |    |                         |
| `apiEndpoint`                                                              | `"/chat/completions" \| "/v1/messages" \| "/responses" \| "ws:/responses"` |    |                         |
| モデル呼び出しに使用される API エンドポイント。は、可観測性とコストの属性に役立ちます。                             |                                                                            |    |                         |
| `ws:/responses` は、応答 API の Websocket バリアントです                               |                                                                            |    |                         |
| `providerCallId`                                                           | `string`                                                                   |    |                         |
| GitHub要求トレース ID (`x-github-request-id`)                                    |                                                                            |    |                         |
| `parentToolCallId`                                                         | `string`                                                                   |    |                         |
| Deprecated. サブエージェントの属性にエンベロープ レベルの `agentId` を使用する                        |                                                                            |    |                         |
| `quotaSnapshots`                                                           | `Record<string, QuotaSnapshot>`                                            |    |                         |
| クォータ識別子でキー付けされたクォータごとのリソース使用量                                              |                                                                            |    |                         |
| `copilotUsage`                                                             | `CopilotUsage`                                                             |    |                         |
| API からの明細化されたトークン コストの内訳                                                   |                                                                            |    |                         |

### `assistant.streaming_delta`

儚い。 低レベルのネットワーク進行状況インジケーター - ストリーミング API 応答から受信した合計バイト数。

| データ フィールド                | タイプ      | 必須 | Description     |
| ------------------------ | -------- | -- | --------------- |
| `totalResponseSizeBytes` | `number` | ✅  | これまでに受信した累積バイト数 |

## ツールの実行イベント

これらのイベントは、ツール呼び出しを要求するモデルから実行から完了までの、各ツール呼び出しの完全なライフサイクルを追跡します。

### `tool.execution_start`

ツールの実行が開始されたときに出力されます。

| データ フィールド                                           | タイプ      | 必須 | Description                              |
| --------------------------------------------------- | -------- | -- | ---------------------------------------- |
| `toolCallId`                                        | `string` | ✅  | この呼び出しツールの一意の識別子                         |
| `toolName`                                          | `string` | ✅  | ツールの名前 (例: `"bash"`、 `"edit"`、 `"grep"`) |
| `arguments`                                         | `object` |    |                                          |
| ツールに渡される解析された引数                                     |          |    |                                          |
| `mcpServerName`                                     | `string` |    |                                          |
| MCP サーバー名 (ツールが MCP サーバーによって提供される場合)                |          |    |                                          |
| `mcpToolName`                                       | `string` |    |                                          |
| MCP サーバー上の元のツール名                                    |          |    |                                          |
| `parentToolCallId`                                  | `string` |    |                                          |
| Deprecated. サブエージェントの属性にエンベロープ レベルの `agentId` を使用する |          |    |                                          |

### `tool.execution_partial_result`

儚い。 実行中のツールからの逐次出力（例: bash のストリーミング出力）。

| データ フィールド       | タイプ      | 必須 | Description                      |
| --------------- | -------- | -- | -------------------------------- |
| `toolCallId`    | `string` | ✅  | 対応する`tool.execution_start`に一致します |
| `partialOutput` | `string` | ✅  | 増分出力チャンク                         |

### `tool.execution_progress`

儚い。 実行中のツール (MCP サーバーの進行状況通知など) から人間が判読できる進行状況の状態。

| データ フィールド         | タイプ      | 必須 | Description                      |
| ----------------- | -------- | -- | -------------------------------- |
| `toolCallId`      | `string` | ✅  | 対応する`tool.execution_start`に一致します |
| `progressMessage` | `string` | ✅  | 進捗状況メッセージ                        |

### `tool.execution_complete`

ツールの実行が正常に終了したとき、またはエラーが発生したときに生成されます。

| データ フィールド                                           | タイプ                  | 必須 | Description                      |
| --------------------------------------------------- | -------------------- | -- | -------------------------------- |
| `toolCallId`                                        | `string`             | ✅  | 対応する`tool.execution_start`に一致します |
| `success`                                           | `boolean`            | ✅  | 実行が成功したかどうか                      |
| `model`                                             | `string`             |    |                                  |
| このツール呼び出しを生成したモデル                                   |                      |    |                                  |
| `interactionId`                                     | `string`             |    |                                  |
| CAPI インタラクション ID                                    |                      |    |                                  |
| `isUserRequested`                                   | `boolean`            |    |                                  |
|                                                     |                      |    |                                  |
| `true` ユーザーがこのツール呼び出しを明示的に要求したとき                    |                      |    |                                  |
| `result`                                            | `Result`             |    |                                  |
| 成功時に含まれる (下記参照)                                     |                      |    |                                  |
| `error`                                             | `{ message, code? }` |    |                                  |
| エラー発生時に含まれる                                         |                      |    |                                  |
| `toolTelemetry`                                     | `object`             |    |                                  |
| ツール固有のテレメトリ (CodeQL チェック数など)                        |                      |    |                                  |
| `parentToolCallId`                                  | `string`             |    |                                  |
| Deprecated. サブエージェントの属性にエンベロープ レベルの `agentId` を使用する |                      |    |                                  |

\*\*
`Result` フィールド：\*\*

| フィールド                                      | タイプ              | 必須 | Description                                 |
| ------------------------------------------ | ---------------- | -- | ------------------------------------------- |
| `content`                                  | `string`         | ✅  | LLM に送信される簡潔な結果 (トークン効率のために切り捨てられる可能性があります) |
| `detailedContent`                          | `string`         |    |                                             |
| 表示用の完全な結果。差分などの完全なコンテンツを保持する               |                  |    |                                             |
| `contents`                                 | `ContentBlock[]` |    |                                             |
| 構造化コンテンツ ブロック (テキスト、ターミナル、イメージ、オーディオ、リソース) |                  |    |                                             |

### `tool.user_requested`

ユーザーが明示的にツールの呼び出しを要求したときに生成されます (呼び出しを選択したモデルではなく)。

| データ フィールド    | タイプ      | 必須 | Description      |
| ------------ | -------- | -- | ---------------- |
| `toolCallId` | `string` | ✅  | この呼び出しツールの一意の識別子 |
| `toolName`   | `string` | ✅  | ユーザーが呼び出すツールの名前  |
| `arguments`  | `object` |    |                  |
| 呼び出しの引数      |          |    |                  |

## セッション ライフサイクル イベント

### `session.idle`

儚い。 エージェントはすべての処理を完了し、次のメッセージの準備が整いました。 これはターンが完全に完了したことを示すシグナルです。

| データ フィールド                      | タイプ       | 必須 | Description |
| ------------------------------ | --------- | -- | ----------- |
| `aborted`                      | `boolean` |    |             |
| 前のターンが中止シグナルによって取り消された場合は True |           |    |             |

### `session.error`

セッション処理中にエラーが発生しました。

| データ フィールド                       | タイプ      | 必須 | Description                                                 |
| ------------------------------- | -------- | -- | ----------------------------------------------------------- |
| `errorType`                     | `string` | ✅  | エラー カテゴリ (例: `"authentication"`、 `"quota"`、 `"rate_limit"`) |
| `message`                       | `string` | ✅  | 人間が読みやすいエラーメッセージ                                            |
| `stack`                         | `string` |    |                                                             |
| エラースタックトレース                     |          |    |                                                             |
| `statusCode`                    | `number` |    |                                                             |
| アップストリーム要求からの HTTP 状態コード        |          |    |                                                             |
| `providerCallId`                | `string` |    |                                                             |
| サーバー側ログの関連付け用 GitHub リクエスト追跡 ID |          |    |                                                             |

### `session.compaction_start`

コンテキスト ウィンドウの圧縮が開始されました。
**データ ペイロードが空 (`{}`) です**。

### `session.compaction_complete`

コンテキスト ウィンドウの圧縮が完了しました。

| データ フィールド                          | タイプ                              | 必須 | Description |
| ---------------------------------- | -------------------------------- | -- | ----------- |
| `success`                          | `boolean`                        | ✅  | 圧縮に成功したかどうか |
| `error`                            | `string`                         |    |             |
| 圧縮に失敗した場合のエラー メッセージ                |                                  |    |             |
| `preCompactionTokens`              | `number`                         |    |             |
| 圧縮前のトークン                           |                                  |    |             |
| `postCompactionTokens`             | `number`                         |    |             |
| 圧縮後のトークン                           |                                  |    |             |
| `preCompactionMessagesLength`      | `number`                         |    |             |
| 圧縮前のメッセージ数                         |                                  |    |             |
| `messagesRemoved`                  | `number`                         |    |             |
| 削除されたメッセージ                         |                                  |    |             |
| `tokensRemoved`                    | `number`                         |    |             |
| トークンが削除されました                       |                                  |    |             |
| `summaryContent`                   | `string`                         |    |             |
| LLM によって生成されたコンパクトな履歴の概要           |                                  |    |             |
| `checkpointNumber`                 | `number`                         |    |             |
| 復旧用に作成されたチェックポイント スナップショット番号       |                                  |    |             |
| `checkpointPath`                   | `string`                         |    |             |
| チェックポイントが格納されたファイル パス              |                                  |    |             |
| `compactionTokensUsed`             | `{ input, output, cachedInput }` |    |             |
| 圧縮 LLM 呼び出しのトークンの使用                |                                  |    |             |
| `requestId`                        | `string`                         |    |             |
| GitHub のコンパクション呼び出し用リクエストトレーシング ID |                                  |    |             |

### `session.title_changed`

儚い。 セッションの自動生成されたタイトルが更新されました。

| データ フィールド | タイプ      | 必須 | Description   |
| --------- | -------- | -- | ------------- |
| `title`   | `string` | ✅  | 新しいセッション タイトル |

### `session.context_changed`

セッションの作業ディレクトリまたはリポジトリ コンテキストが変更されました。

| データ フィールド              | タイプ      | 必須 | Description |
| ---------------------- | -------- | -- | ----------- |
| `cwd`                  | `string` | ✅  | 現在の作業ディレクトリ |
| `gitRoot`              | `string` |    |             |
| Git リポジトリのルート          |          |    |             |
| `repository`           | `string` |    |             |
|                        |          |    |             |
| `"owner/name"`形式のリポジトリ |          |    |             |
| `branch`               | `string` |    |             |
| 現在の Git ブランチ           |          |    |             |

### `session.usage_info`

儚い。 コンテキスト ウィンドウ使用率スナップショット。

| データ フィールド        | タイプ      | 必須 | Description              |
| ---------------- | -------- | -- | ------------------------ |
| `tokenLimit`     | `number` | ✅  | モデルのコンテキスト ウィンドウの最大トークン数 |
| `currentTokens`  | `number` | ✅  | コンテキスト ウィンドウ内の現在のトークン    |
| `messagesLength` | `number` | ✅  | 会話の現在のメッセージ数             |

### `session.session_limits_changed`

現在の会計期間のセッション制限が変更されました。
`null`
`sessionLimits`値は、制限がアクティブでないことを意味します。

| データ フィールド                        | タイプ                           | 必須 | Description                       |
| -------------------------------- | ----------------------------- | -- | --------------------------------- |
| `sessionLimits`                  | `SessionLimitsConfig \| null` | ✅  | 現在のセッションの制限、または制限が有効でない場合は `null` |
| `sessionLimits.maxAiCredits`     | `number`                      |    |                                   |
| セッションの現在の会計期間で許可される AI クレジットの最大数 |                               |    |                                   |

### `session.usage_checkpoint`

セッションの再開時にアカウンティングを再構築するために使用される永続集計使用チェックポイント。

| データ フィールド                          | タイプ      | 必須 | Description                               |
| ---------------------------------- | -------- | -- | ----------------------------------------- |
| `totalNanoAiu`                     | `number` | ✅  | チェックポイント時点におけるセッション全体の nano-AI ユニットの累積コスト |
| `totalPremiumRequests`             | `number` |    |                                           |
| チェックポイント時に使用された Premium API 要求の合計数 |          |    |                                           |

### `session.task_complete`

エージェントは、割り当てられたタスクを完了しました。

| データ フィールド  | タイプ      | 必須 | Description |
| ---------- | -------- | -- | ----------- |
| `summary`  | `string` |    |             |
| 完了したタスクの概要 |          |    |             |

### `session.shutdown`

セッションが終了しました。

| データ フィールド                              | タイプ                                           | 必須 | Description                   |
| -------------------------------------- | --------------------------------------------- | -- | ----------------------------- |
| `shutdownType`                         | `"routine" \| "error"`                        | ✅  | 通常のシャットダウンまたはクラッシュ            |
| `errorReason`                          | `string`                                      |    |                               |
|                                        |                                               |    |                               |
| `shutdownType` が `"error"` である場合のエラー説明 |                                               |    |                               |
| `totalPremiumRequests`                 | `number`                                      | ✅  | 使用された Premium API 要求の合計数      |
| `totalApiDurationMs`                   | `number`                                      | ✅  | API 呼び出しの累積時間 (ミリ秒単位)         |
| `sessionStartTime`                     | `number`                                      | ✅  | セッションの開始時の Unix タイムスタンプ (ミリ秒) |
| `codeChanges`                          | `{ linesAdded, linesRemoved, filesModified }` | ✅  | コード変更メトリックの集計                 |
| `modelMetrics`                         | `Record<string, ModelMetric>`                 | ✅  | モデルごとの使用状況の内訳                 |
| `currentModel`                         | `string`                                      |    |                               |
| シャットダウン時に選択されたモデル                      |                                               |    |                               |

## アクセス許可とユーザー入力イベント

これらのイベントは、エージェントが続行する前にユーザーからの承認または入力を必要とする場合に生成されます。

### `permission.requested`

エージェントには、アクション (コマンドの実行、ファイルの書き込みなど) を実行するためのアクセス許可が必要です。

| データ フィールド           | タイプ                 | 必須 | Description                                         |
| ------------------- | ------------------- | -- | --------------------------------------------------- |
| `requestId`         | `string`            | ✅  | これを使用して、次の方法で応答します。 `session.respondToPermission()` |
| `permissionRequest` | `PermissionRequest` | ✅  | 要求されているアクセス許可の詳細                                    |

`permissionRequest`は、`kind`の判別共用体です。

| `kind`                                                       | キー フィールド           | Description |
| ------------------------------------------------------------ | ------------------ | ----------- |
| `"shell"`                                                    |                    |             |
| `fullCommandText`、`intention`、`commands[]`、`possiblePaths[]` | シェル コマンドを実行する      |             |
| `"write"`                                                    |                    |             |
| `fileName`、`diff`、`intention`、`newFileContents?`             | ファイルの書き込み/変更       |             |
| `"read"`                                                     |                    |             |
| `path`、`intention`                                           | ファイルまたはディレクトリの読み取り |             |
| `"mcp"`                                                      |                    |             |
| `serverName`、`toolName`、`toolTitle`、`args?`、`readOnly`       | MCP ツールを呼び出す       |             |
| `"url"`                                                      |                    |             |
| `url`、`intention`                                            | URL を取得する          |             |
| `"memory"`                                                   |                    |             |
| `subject`、`fact`、`citations`                                 | メモリを格納する           |             |
| `"custom-tool"`                                              |                    |             |
| `toolName`、`toolDescription`、`args?`                         | カスタム ツールを呼び出す      |             |

すべての `kind` バリアントには、要求をトリガーしたツール呼び出しにリンクバックするオプションの `toolCallId` も含まれています。

### `permission.completed`

アクセス許可要求が解決されました。

| データ フィールド     | タイプ      | 必須 | Description                                                                                                                                                                      |
| ------------- | -------- | -- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `requestId`   | `string` | ✅  | 対応する`permission.requested`に一致します                                                                                                                                                 |
| `result.kind` | `string` | ✅  | 次のいずれか: `"approved"`、 `"denied-by-rules"`、 `"denied-interactively-by-user"`、 `"denied-no-approval-rule-and-could-not-request-from-user"`、 `"denied-by-content-exclusion-policy"` |

### `user_input.requested`

儚い。 エージェントがユーザーに質問しています。

| データ フィールド             | タイプ        | 必須 | Description                                        |
| --------------------- | ---------- | -- | -------------------------------------------------- |
| `requestId`           | `string`   | ✅  | これを使用して、次の方法で応答します。 `session.respondToUserInput()` |
| `question`            | `string`   | ✅  | ユーザーに提示する質問                                        |
| `choices`             | `string[]` |    |                                                    |
| ユーザーの定義済みの選択肢         |            |    |                                                    |
| `allowFreeform`       | `boolean`  |    |                                                    |
| 自由形式のテキスト入力が許可されるかどうか |            |    |                                                    |

### `user_input.completed`

儚い。 ユーザー入力要求が解決されました。

| データ フィールド   | タイプ      | 必須 | Description                      |
| ----------- | -------- | -- | -------------------------------- |
| `requestId` | `string` | ✅  | 対応する`user_input.requested`に一致します |

### `elicitation.requested`

儚い。 エージェントには、ユーザーからの構造化されたフォーム入力 (MCP 引き出しプロトコル) が必要です。

| データ フィールド                | タイプ                                         | 必須 | Description                                          |
| ------------------------ | ------------------------------------------- | -- | ---------------------------------------------------- |
| `requestId`              | `string`                                    | ✅  | これを使用して、次の方法で応答します。 `session.respondToElicitation()` |
| `message`                | `string`                                    | ✅  | 必要な情報の説明                                             |
| `mode`                   | `"form"`                                    |    |                                                      |
| 現在、引き出しモードは`"form"`のみです。 |                                             |    |                                                      |
| `requestedSchema`        | `{ type: "object", properties, required? }` | ✅  | フォーム フィールドを記述する JSON スキーマ                            |

### `elicitation.completed`

儚い。 引き出し要請が解決されました。

| データ フィールド   | タイプ      | 必須 | Description                       |
| ----------- | -------- | -- | --------------------------------- |
| `requestId` | `string` | ✅  | 対応する`elicitation.requested`に一致します |

## サブエージェントとスキル イベント

### `subagent.started`

カスタム エージェントがサブエージェントとして呼び出されました。

| データ フィールド                      | タイプ      | 必須 | Description             |
| ------------------------------ | -------- | -- | ----------------------- |
| `toolCallId`                   | `string` | ✅  | このサブエージェントを生成した親ツール呼び出し |
| `agentName`                    | `string` | ✅  | サブエージェントの内部名            |
| `agentDisplayName`             | `string` | ✅  | 人間が判読できる表示名             |
| `agentDescription`             | `string` | ✅  | サブエージェントの機能の説明          |
| `model`                        | `string` |    |                         |
| 開始時に判明している場合に、サブエージェントが使用するモデル |          |    |                         |

### `subagent.completed`

サブエージェントが正常に完了しました。

| データ フィールド             | タイプ      | 必須 | Description                  |
| --------------------- | -------- | -- | ---------------------------- |
| `toolCallId`          | `string` | ✅  | 対応する`subagent.started`に一致します |
| `agentName`           | `string` | ✅  | 内部名                          |
| `agentDisplayName`    | `string` | ✅  | 表示名                          |
| `model`               | `string` |    |                              |
| サブエージェントで使用されるモデル     |          |    |                              |
| `durationMs`          | `number` |    |                              |
| ウォール クロックの実行時間 (ミリ秒)  |          |    |                              |
| `totalTokens`         | `number` |    |                              |
| 使用された入力トークンと出力トークンの合計 |          |    |                              |
| `totalToolCalls`      | `number` |    |                              |
| 作成されたツール呼び出しの合計数      |          |    |                              |

### `subagent.failed`

サブエージェントでエラーが発生しました。

| データ フィールド                    | タイプ      | 必須 | Description                  |
| ---------------------------- | -------- | -- | ---------------------------- |
| `toolCallId`                 | `string` | ✅  | 対応する`subagent.started`に一致します |
| `agentName`                  | `string` | ✅  | 内部名                          |
| `agentDisplayName`           | `string` | ✅  | 表示名                          |
| `error`                      | `string` | ✅  | エラー メッセージ                    |
| `model`                      | `string` |    |                              |
| サブエージェントに対して選択されたモデル (既知の場合) |          |    |                              |
| `durationMs`                 | `number` |    |                              |
| ウォール クロックの実行時間 (ミリ秒)         |          |    |                              |
| `totalTokens`                | `number` |    |                              |
| 失敗前に使用された入力トークンと出力トークンの合計    |          |    |                              |
| `totalToolCalls`             | `number` |    |                              |
| 失敗前に行われたツール呼び出しの合計数          |          |    |                              |

### `subagent.selected`

現在の要求を処理するために、カスタム エージェントが選択 (推論) されました。

| データ フィールド          | タイプ                | 必須 | Description                        |
| ------------------ | ------------------ | -- | ---------------------------------- |
| `agentName`        | `string`           | ✅  | 選択したエージェントの内部名                     |
| `agentDisplayName` | `string`           | ✅  | 表示名                                |
| `tools`            | `string[] \| null` | ✅  | このエージェントで使用可能なツール名。すべてのツールには`null` |

### `subagent.deselected`

カスタム エージェントの選択が解除され、既定のエージェントに戻りました。
**データ ペイロードが空 (`{}`) です**。

### `skill.invoked`

現在の会話に対してスキルがアクティブ化されました。

| データ フィールド                | タイプ        | 必須 | Description              |
| ------------------------ | ---------- | -- | ------------------------ |
| `name`                   | `string`   | ✅  | スキル名                     |
| `path`                   | `string`   | ✅  | SKILL.md 定義へのファイル パス     |
| `content`                | `string`   | ✅  | 会話にすべてのスキルコンテンツが挿入されました。 |
| `allowedTools`           | `string[]` |    |                          |
| このスキルがアクティブな間に自動承認されたツール |            |    |                          |
| `pluginName`             | `string`   |    |                          |
| スキルの元のプラグイン              |            |    |                          |
| `pluginVersion`          | `string`   |    |                          |
| プラグインのバージョン              |            |    |                          |

## その他のイベント

### `abort`

現在のターンは中止されました。

| データ フィールド | タイプ      | 必須 | Description                         |
| --------- | -------- | -- | ----------------------------------- |
| `reason`  | `string` | ✅  | ターンが中止された理由 (例: `"user initiated"`) |

### `user.message`

ユーザーがメッセージを送信しました。 セッション タイムライン用に記録されます。

| データ フィールド                                                          | タイプ            | 必須 | Description     |
| ------------------------------------------------------------------ | -------------- | -- | --------------- |
| `content`                                                          | `string`       | ✅  | ユーザーのメッセージ テキスト |
| `transformedContent`                                               | `string`       |    |                 |
| 前処理後に変換されたバージョン                                                    |                |    |                 |
| `attachments`                                                      | `Attachment[]` |    |                 |
| ファイル、ディレクトリ、選択項目、blob、または GitHub 参照の添付ファイル                         |                |    |                 |
| `source`                                                           | `string`       |    |                 |
| メッセージ ソース識別子                                                       |                |    |                 |
| `agentMode`                                                        | `string`       |    |                 |
| エージェント モード: `"interactive"`、 `"plan"`、 `"autopilot"`、または `"shell"` |                |    |                 |
| `interactionId`                                                    | `string`       |    |                 |
| CAPI インタラクション ID                                                   |                |    |                 |

### `system.message`

システムまたは開発者のプロンプトが会話に挿入されました。

| データ フィールド          | タイプ                              | 必須 | Description |
| ------------------ | -------------------------------- | -- | ----------- |
| `content`          | `string`                         | ✅  | プロンプトの内容    |
| `role`             | `"system" \| "developer"`        | ✅  | メッセージ 役割    |
| `name`             | `string`                         |    |             |
| ソース識別子             |                                  |    |             |
| `metadata`         | `{ promptVersion?, variables? }` |    |             |
| プロンプト テンプレートのメタデータ |                                  |    |             |

### `external_tool.requested`

エージェントは、外部ツール (SDK コンシューマーによって提供されるツール) を呼び出したいと考えています。

| データ フィールド    | タイプ      | 必須 | Description                                           |
| ------------ | -------- | -- | ----------------------------------------------------- |
| `requestId`  | `string` | ✅  | これを使用して、次の方法で応答します。 `session.respondToExternalTool()` |
| `sessionId`  | `string` | ✅  | この要求が属するセッション                                         |
| `toolCallId` | `string` | ✅  | この呼び出しのツール呼び出し ID                                     |
| `toolName`   | `string` | ✅  | 外部ツールの名前                                              |
| `arguments`  | `object` |    |                                                       |
| ツールの引数       |          |    |                                                       |

### `external_tool.completed`

外部ツール要求が解決されました。

| データ フィールド   | タイプ      | 必須 | Description                         |
| ----------- | -------- | -- | ----------------------------------- |
| `requestId` | `string` | ✅  | 対応する`external_tool.requested`に一致します |

### `exit_plan_mode.requested`

儚い。 エージェントによってプランが作成され、プラン モードを終了する必要があります。

| データ フィールド           | タイプ        | 必須 | Description                                           |
| ------------------- | ---------- | -- | ----------------------------------------------------- |
| `requestId`         | `string`   | ✅  | これを使用して、次の方法で応答します。 `session.respondToExitPlanMode()` |
| `summary`           | `string`   | ✅  | プランの概要                                                |
| `planContent`       | `string`   | ✅  | プランファイルの全内容                                           |
| `actions`           | `string[]` | ✅  | 使用可能なユーザー アクション (承認、編集、拒否など)                          |
| `recommendedAction` | `string`   | ✅  | 推奨されるアクション                                            |

### `exit_plan_mode.completed`

儚い。 終了プラン モード要求が解決されました。

| データ フィールド   | タイプ      | 必須 | Description                          |
| ----------- | -------- | -- | ------------------------------------ |
| `requestId` | `string` | ✅  | 対応する`exit_plan_mode.requested`に一致します |

### `command.queued`

儚い。 スラッシュ コマンドがキューに登録され、実行されました。

| データ フィールド   | タイプ      | 必須 | Description                                            |
| ----------- | -------- | -- | ------------------------------------------------------ |
| `requestId` | `string` | ✅  | これを使用して、次の方法で応答します。 `session.respondToQueuedCommand()` |
| `command`   | `string` | ✅  | スラッシュ コマンド テキスト (例: `/help`、 `/clear`)                 |

### `command.completed`

儚い。 キューに登録されたコマンドが解決されました。

| データ フィールド   | タイプ      | 必須 | Description                |
| ----------- | -------- | -- | -------------------------- |
| `requestId` | `string` | ✅  | 対応する`command.queued`に一致します |

### `session_limits_exhausted.requested`

儚い。 現在のセッション予算が使い果たされ、ランタイムは続行する前にユーザーの決定を必要とします。

| データ フィールド       | タイプ      | 必須 | Description                          |
| --------------- | -------- | -- | ------------------------------------ |
| `requestId`     | `string` | ✅  | 保留中の上限を超える要求に応答するときにこの ID を使用します     |
| `maxAiCredits`  | `number` | ✅  | 現在のアカウンティング ウィンドウ用に構成された最大 AI クレジット数 |
| `usedAiCredits` | `number` | ✅  | 現在の会計ウィンドウで既に使用されている AI クレジット        |

### `session_limits_exhausted.completed`

儚い。 保留中の上限超過リクエストが解消されました。

| データ フィールド                                      | タイプ                                     | 必須 | Description                                          |
| ---------------------------------------------- | --------------------------------------- | -- | ---------------------------------------------------- |
| `requestId`                                    | `string`                                | ✅  | 対応する `session_limits_exhausted.requested` イベントと一致します |
| `response.action`                              | `"add" \| "set" \| "unset" \| "cancel"` | ✅  | 上限到達時のリクエストに対して選択されたアクション                            |
| `response.additionalAiCredits`                 | `number`                                |    |                                                      |
|                                                |                                         |    |                                                      |
| `response.action` が `"add"`に現在の最大値に加算するAIクレジット |                                         |    |                                                      |
| `response.maxAiCredits`                        | `number`                                |    |                                                      |
|                                                |                                         |    |                                                      |
| `response.action` が `"set"`の AI クレジットの新しい絶対最大値 |                                         |    |                                                      |

## クイックリファレンス: エージェンティックターンフロー

一般的なエージェント ターンでは、次の順序でイベントが出力されます。

```text
assistant.turn_start          → Turn begins
├── assistant.intent          → What the agent plans to do (ephemeral)
├── assistant.reasoning_delta → Streaming thinking chunks (ephemeral, repeated)
├── assistant.reasoning       → Complete thinking block
├── assistant.message_delta   → Streaming response chunks (ephemeral, repeated)
├── assistant.message         → Complete response (may include toolRequests)
├── assistant.usage           → Token usage for this API call (ephemeral)
│
├── [If tools were requested:]
│   ├── permission.requested  → Needs user approval
│   ├── permission.completed  → Approval result
│   ├── tool.execution_start  → Tool begins
│   ├── tool.execution_partial_result  → Streaming tool output (ephemeral, repeated)
│   ├── tool.execution_progress        → Progress updates (ephemeral, repeated)
│   ├── tool.execution_complete        → Tool finished
│   │
│   └── [Agent loops: more reasoning → message → tool calls...]
│
assistant.turn_end            → Turn complete
session.idle                  → Ready for next message (ephemeral)
```

## すべてのイベントの種類の概要

この表に、主要な `data` ペイロード フィールドを示します。 共通のエンベロープ フィールドについては、上記で説明しています。

| イベントの種類                                                                                             | エフェメラル          | Category | キー データ フィールド             |
| --------------------------------------------------------------------------------------------------- | --------------- | -------- | ------------------------ |
| `assistant.turn_start`                                                                              |                 |          |                          |
| 助手                                                                                                  |                 |          |                          |
| `turnId`、`interactionId?`                                                                           |                 |          |                          |
| `assistant.intent`                                                                                  | ✅               | 助手       | `intent`                 |
| `assistant.reasoning`                                                                               |                 |          |                          |
| 助手                                                                                                  |                 |          |                          |
| `reasoningId`、`content`                                                                             |                 |          |                          |
| `assistant.reasoning_delta`                                                                         | ✅               | 助手       |                          |
| `reasoningId`、`deltaContent`                                                                        |                 |          |                          |
| `assistant.streaming_delta`                                                                         | ✅               | 助手       | `totalResponseSizeBytes` |
| `assistant.message`                                                                                 |                 |          |                          |
| 助手                                                                                                  |                 |          |                          |
| `messageId`、`content`、`toolRequests?`、`outputTokens?`、`phase?`                                      |                 |          |                          |
| `assistant.message_delta`                                                                           | ✅               | 助手       |                          |
| `messageId`、`deltaContent`                                                                          |                 |          |                          |
| `assistant.turn_end`                                                                                |                 |          |                          |
| 助手                                                                                                  | `turnId`        |          |                          |
| `assistant.usage`                                                                                   | ✅               | 助手       |                          |
| `model`、 `apiEndpoint?`、 `inputTokens?`、 `outputTokens?`、 `cost?`、 `duration?`                      |                 |          |                          |
| `tool.user_requested`                                                                               |                 |          |                          |
| ツール                                                                                                 |                 |          |                          |
| `toolCallId`、`toolName`、`arguments?`                                                                |                 |          |                          |
| `tool.execution_start`                                                                              |                 |          |                          |
| ツール                                                                                                 |                 |          |                          |
| `toolCallId`、`toolName`、`arguments?`、`mcpServerName?`                                               |                 |          |                          |
| `tool.execution_partial_result`                                                                     | ✅               | ツール      |                          |
| `toolCallId`、`partialOutput`                                                                        |                 |          |                          |
| `tool.execution_progress`                                                                           | ✅               | ツール      |                          |
| `toolCallId`、`progressMessage`                                                                      |                 |          |                          |
| `tool.execution_complete`                                                                           |                 |          |                          |
| ツール                                                                                                 |                 |          |                          |
| `toolCallId`、`success`、`result?`、`error?`                                                           |                 |          |                          |
| `session.idle`                                                                                      | ✅               | Session  | `aborted?`               |
| `session.error`                                                                                     |                 |          |                          |
| Session                                                                                             |                 |          |                          |
| `errorType`、`message`、`statusCode?`                                                                 |                 |          |                          |
| `session.compaction_start`                                                                          |                 |          |                          |
| Session                                                                                             |                 |          |                          |
| *(空)*                                                                                               |                 |          |                          |
| `session.compaction_complete`                                                                       |                 |          |                          |
| Session                                                                                             |                 |          |                          |
| `success`、`preCompactionTokens?`、`summaryContent?`                                                  |                 |          |                          |
| `session.title_changed`                                                                             | ✅               | Session  | `title`                  |
| `session.context_changed`                                                                           |                 |          |                          |
| Session                                                                                             |                 |          |                          |
| `cwd`、`gitRoot?`、`repository?`、`branch?`                                                            |                 |          |                          |
| `session.usage_info`                                                                                | ✅               | Session  |                          |
| `tokenLimit`、`currentTokens`、`messagesLength`                                                       |                 |          |                          |
| `session.session_limits_changed`                                                                    |                 |          |                          |
| Session                                                                                             | `sessionLimits` |          |                          |
| `session.usage_checkpoint`                                                                          |                 |          |                          |
| Session                                                                                             |                 |          |                          |
| `totalNanoAiu`、`totalPremiumRequests?`                                                              |                 |          |                          |
| `session.task_complete`                                                                             |                 |          |                          |
| Session                                                                                             | `summary?`      |          |                          |
| `session.shutdown`                                                                                  |                 |          |                          |
| Session                                                                                             |                 |          |                          |
| `shutdownType`、`codeChanges`、`modelMetrics`                                                         |                 |          |                          |
| `permission.requested`                                                                              |                 |          |                          |
| 許可                                                                                                  |                 |          |                          |
| `requestId`、`permissionRequest`                                                                     |                 |          |                          |
| `permission.completed`                                                                              |                 |          |                          |
| 許可                                                                                                  |                 |          |                          |
| `requestId`、`result.kind`                                                                           |                 |          |                          |
| `user_input.requested`                                                                              | ✅               | ユーザー入力   |                          |
| `requestId`、`question`、`choices?`                                                                   |                 |          |                          |
| `user_input.completed`                                                                              | ✅               | ユーザー入力   | `requestId`              |
| `elicitation.requested`                                                                             | ✅               | ユーザー入力   |                          |
| `requestId`、`message`、`requestedSchema`                                                             |                 |          |                          |
| `elicitation.completed`                                                                             | ✅               | ユーザー入力   | `requestId`              |
| `subagent.started`                                                                                  |                 |          |                          |
| サブエージェント                                                                                            |                 |          |                          |
| `toolCallId`、`agentName`、`agentDisplayName`、`model?`                                                |                 |          |                          |
| `subagent.completed`                                                                                |                 |          |                          |
| サブエージェント                                                                                            |                 |          |                          |
| `toolCallId`､`agentName`、`agentDisplayName`、`model?`、`durationMs?`、`totalTokens?`、`totalToolCalls?` |                 |          |                          |
| `subagent.failed`                                                                                   |                 |          |                          |
| サブエージェント                                                                                            |                 |          |                          |
| `toolCallId`､`agentName`、`error`、`model?`、`durationMs?`、`totalTokens?`、`totalToolCalls?`            |                 |          |                          |
| `subagent.selected`                                                                                 |                 |          |                          |
| サブエージェント                                                                                            |                 |          |                          |
| `agentName`、`agentDisplayName`、`tools`                                                              |                 |          |                          |
| `subagent.deselected`                                                                               |                 |          |                          |
| サブエージェント                                                                                            |                 |          |                          |
| *(空)*                                                                                               |                 |          |                          |
| `skill.invoked`                                                                                     |                 |          |                          |
| Skill                                                                                               |                 |          |                          |
| `name`、`path`、`content`、`allowedTools?`                                                             |                 |          |                          |
| `abort`                                                                                             |                 |          |                          |
| コントロール                                                                                              | `reason`        |          |                          |
| `user.message`                                                                                      |                 |          |                          |
| ユーザー                                                                                                |                 |          |                          |
| `content`、`attachments?`、`agentMode?`                                                               |                 |          |                          |
| `system.message`                                                                                    |                 |          |                          |
| System                                                                                              |                 |          |                          |
| `content`、`role`                                                                                    |                 |          |                          |
| `external_tool.requested`                                                                           |                 |          |                          |
| 外部ツール                                                                                               |                 |          |                          |
| `requestId`、`toolName`、`arguments?`                                                                 |                 |          |                          |
| `external_tool.completed`                                                                           |                 |          |                          |
| 外部ツール                                                                                               | `requestId`     |          |                          |
| `command.queued`                                                                                    | ✅               | 命令       |                          |
| `requestId`、`command`                                                                               |                 |          |                          |
| `command.completed`                                                                                 | ✅               | 命令       | `requestId`              |
| `session_limits_exhausted.requested`                                                                | ✅               | Session  |                          |
| `requestId`、`maxAiCredits`、`usedAiCredits`                                                          |                 |          |                          |
| `session_limits_exhausted.completed`                                                                | ✅               | Session  |                          |
| `requestId`、`response.action`                                                                       |                 |          |                          |
| `exit_plan_mode.requested`                                                                          | ✅               | プラン モード  |                          |
| `requestId`、`summary`、`planContent`、`actions`                                                       |                 |          |                          |
| `exit_plan_mode.completed`                                                                          | ✅               | プラン モード  | `requestId`              |