ClaudeCloudflare Developer Platform2026/03/03 0:00

Agents - Real-time file watching in Sandboxes

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

claudejamodel: claude-sonnet-4-20250514

Cloudflare Sandboxes にリアルタイムファイル監視機能が追加

Key Points

  • リアルタイムファイル監視機能の追加
  • Server-Sent Eventsストリーム対応
  • Globパターンによるフィルタリング

Summary

Cloudflare Sandboxes に sandbox.watch() メソッドが追加され、コンテナ内のファイルシステムをリアルタイムで監視できるようになりました。この機能は inotify をベースとした Server-Sent Events ストリームを提供し、ファイルの作成、変更、削除、移動イベントをリアルタイムで受信できます。

Key Points

  • リアルタイム監視: sandbox.watch() でディレクトリパスを指定してファイル変更を監視
  • イベントタイプ: create, modify, delete, move の4種類のイベントに対応
  • ストリーミング対応: 標準の ReadableStream として返され、ブラウザクライアントへの直接プロキシが可能
  • サーバーサイド処理: parseSSEStream を使用してWorker内でイベントを処理
  • フィルタリング機能: recursive オプションでサブディレクトリ監視、include オプションでGlobパターンによるフィルタリング
  • アップグレード: npm i @cloudflare/sandbox@latest で最新版に更新可能

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

claudejamodel: claude-sonnet-4-20250514

Agents - Sandboxesでのリアルタイムファイル監視

Sandboxesでのリアルタイムファイル監視

2026年3月3日

Sandboxesがsandbox.watch()を通じてリアルタイムファイルシステム監視をサポートするようになりました。このメソッドはネイティブinotifyに基づくServer-Sent Eventsストリームを返すため、コンテナ内で発生するcreatemodifydeletemoveイベントをWorkerがリアルタイムで受信できます。

sandbox.watch(path, options)

ディレクトリパスとオプションのフィルターを渡します。返されるストリームは標準的なReadableStreamで、ブラウザクライアントに直接プロキシしたり、サーバーサイドで消費したりできます。

JavaScript

// ブラウザクライアントにイベントをストリーミング
const stream = await sandbox.watch("/workspace/src", {
  recursive: true,
  include: ["*.ts", "*.js"],
});

return new Response(stream, {
  headers: { "Content-Type": "text/event-stream" },
});

TypeScript

// ブラウザクライアントにイベントをストリーミング
const stream = await sandbox.watch("/workspace/src", {
  recursive: true,
  include: ["*.ts", "*.js"],
});

return new Response(stream, {
  headers: { "Content-Type": "text/event-stream" },
});

parseSSEStreamを使用したサーバーサイド消費

parseSSEStreamを使用して、クライアントに転送することなくWorker内でイベントを反復処理できます。

JavaScript

import { parseSSEStream } from "@cloudflare/sandbox";

const stream = await sandbox.watch("/workspace/src", {
  recursive: true
});

for await (const event of parseSSEStream(stream)) {
  console.log(event.type, event.path);
}

TypeScript

import { parseSSEStream } from "@cloudflare/sandbox";
import type { FileWatchSSEEvent } from "@cloudflare/sandbox";

const stream = await sandbox.watch("/workspace/src", {
  recursive: true
});

for await (const event of parseSSEStream<FileWatchSSEEvent>(stream)) {
  console.log(event.type, event.path);
}

各イベントにはtypeフィールド(createmodifydelete、またはmove)と影響を受けたpathが含まれます。moveイベントには元のパスを含むfromフィールドも含まれます。

オプション

オプション説明
recursivebooleanサブディレクトリを監視します。デフォルトはfalseです。
includestring[]イベントをフィルタリングするためのGlobパターン。すべてのイベントを受信するには省略します。

アップグレード

最新バージョンに更新するには:

npm i @cloudflare/sandbox@latest

完全なAPI詳細については、Sandboxファイル監視リファレンスを参照してください。