@cloudflare/codemode v0.2.1: MCP barrel export、ゼロ依存関係メインエントリーポイント、カスタムサンドボックスモジュール
@cloudflare/codemodeの最新リリースでは、新しいMCP barrel export、メインエントリーポイントからaiとzodの必須ピア依存関係の削除、そしてサンドボックスのより詳細な制御が追加されました。
新しい@cloudflare/codemode/mcpエクスポート
新しい@cloudflare/codemode/mcpエントリーポイントは、MCPサーバーをCode Modeでラップする2つの関数を提供します:
codeMcpServer({ server, executor }) — 既存のMCPサーバーを単一のコードツールでラップし、各アップストリームツールが型付きのcodemode.*メソッドになります。
openApiMcpServer({ spec, executor, request }) — OpenAPI仕様からホスト側リクエストプロキシと自動$ref解決を使用してsearchとexecute MCPツールを作成します。
JavaScript
import { codeMcpServer } from "@cloudflare/codemode/mcp";
import { DynamicWorkerExecutor } from "@cloudflare/codemode";
const executor = new DynamicWorkerExecutor({
loader: env.LOADER
});
const server = await codeMcpServer({
server: upstreamMcp,
executor
});
TypeScript
import { codeMcpServer } from "@cloudflare/codemode/mcp";
import { DynamicWorkerExecutor } from "@cloudflare/codemode";
const executor = new DynamicWorkerExecutor({
loader: env.LOADER
});
const server = await codeMcpServer({
server: upstreamMcp,
executor
});
ゼロ依存関係メインエントリーポイント
v0.2.0での破壊的変更: generateTypesとToolDescriptor / ToolDescriptors型は@cloudflare/codemode/aiに移動されました:
JavaScript
import { generateTypes } from "@cloudflare/codemode";
import { generateTypes } from "@cloudflare/codemode/ai";
TypeScript
import { generateTypes } from "@cloudflare/codemode";
import { generateTypes } from "@cloudflare/codemode/ai";
メインエントリーポイント(@cloudflare/codemode)は、もはやaiやzodのピア依存関係を必要としません。現在は以下をエクスポートしています:
| エクスポート | 説明 |
|---|
sanitizeToolName | ツール名を有効なJS識別子にサニタイズ |
normalizeCode | LLM生成コードを非同期アロー関数に正規化 |
generateTypesFromJsonSchema | プレーンJSON SchemaからTypeScript型定義を生成 |
jsonSchemaToType | 単一のJSON SchemaをTypeScript型文字列に変換 |
DynamicWorkerExecutor | Dynamic Worker Loaderを介したサンドボックス化されたコード実行 |
ToolDispatcher | サンドボックスからホストへのツール呼び出しディスパッチ用RPCターゲット |
aiとzodのピア依存関係は現在オプションです — @cloudflare/codemode/aiからインポートする場合のみ必要です。
カスタムサンドボックスモジュール
DynamicWorkerExecutorは、カスタムESモジュールをサンドボックスに注入するためのオプションのmodulesオプションを受け入れるようになりました:
JavaScript
const executor = new DynamicWorkerExecutor({
loader: env.LOADER,
modules: {
"utils.js": `export function add(a, b) { return a + b; }`,
},
});
TypeScript
const executor = new DynamicWorkerExecutor({
loader: env.LOADER,
modules: {
"utils.js": `export function add(a, b) { return a + b; }`,
},
});
内部正規化とサニタイゼーション
DynamicWorkerExecutorは現在、コードの正規化とツール名のサニタイゼーションを内部で行います。execute()にコードと関数を渡す前に、normalizeCode()やsanitizeToolName()を呼び出す必要はもうありません。
アップグレード
npm i @cloudflare/codemode@latest
完全なAPIリファレンスについては、Code Modeドキュメントをご覧ください。