agents
Version:
A home for your AI agents
619 lines • 20.6 kB
JSON
{
"name": "agents",
"description": "A home for your AI agents",
"keywords": [
"cloudflare",
"agents",
"ai",
"llm",
"durable objects"
],
"type": "module",
"bin": {
"agents": "./dist/cli.js"
},
"version": "0.33.0",
"sideEffects": [
"./dist/cli.js"
],
"license": "MIT",
"repository": {
"directory": "packages/agents",
"type": "git",
"url": "git+https://github.com/cloudflare/agents.git"
},
"author": "Cloudflare Inc.",
"bugs": {
"url": "https://github.com/cloudflare/agents/issues"
},
"dependencies": {
"@babel/plugin-proposal-decorators": "^8.0.2",
"@cfworker/json-schema": "^4.1.1",
"@opentelemetry/api": "^1.9.0",
"@rolldown/plugin-babel": "^0.2.3",
"capnweb": "^0.12.0",
"cron-schedule": "^6.0.0",
"mimetext": "^3.0.28",
"nanoid": "^5.1.16",
"partysocket": "1.3.0",
"postal-mime": "^2.7.5",
"yaml": "^2.9.0"
},
"devDependencies": {
"@ai-sdk/anthropic": "^4.0.0",
"@ai-sdk/openai": "^4.0.0",
"@ai-sdk/provider": "^4.0.0",
"@ai-sdk/react": "^4.0.0",
"@ai-sdk/valibot": "3.0.6",
"@cloudflare/codemode": "^0.5.6",
"@earendil-works/chord": "~1.5.0",
"@earendil-works/pi-ai": "~1.5.0",
"@earendil-works/pi-codemode": "~1.5.0",
"@earendil-works/pi-durable": "~1.5.0",
"@earendil-works/pi-schema": "~1.5.0",
"@earendil-works/pi-tui": "1.5.0",
"@modelcontextprotocol/client": "2.4.0",
"@modelcontextprotocol/conformance-v2": "npm:@modelcontextprotocol/conformance@0.2.0-alpha.12",
"@modelcontextprotocol/sdk": "1.32.2",
"@modelcontextprotocol/server": "2.4.0",
"@opencode/plugin": "2.0.24",
"@opencode/sdk": "2.0.24",
"@tanstack/ai": "0.38.0",
"@types/react": "^19.2.17",
"@valibot/to-json-schema": "1.3.0",
"@x402/core": "^2.17.0",
"@x402/evm": "^2.17.0",
"ai": "^7.0.0",
"chat": "^4.31.0",
"esbuild": "^0.28.1",
"glob": "^13.0.6",
"highlight.js": "11.12.0",
"just-bash": "^3.0.2",
"react": "^19.2.7",
"valibot": "1.4.2",
"zod": "^4.6.7"
},
"peerDependencies": {
"@ai-sdk/provider": "^4.0.0",
"@ai-sdk/react": "^3.0.0 || ^4.0.0",
"@cloudflare/codemode": ">=0.5.0",
"@earendil-works/chord": "~1.5.0",
"@earendil-works/pi-ai": "~1.5.0",
"@earendil-works/pi-durable": "~1.5.0",
"@earendil-works/pi-schema": "~1.5.0",
"@modelcontextprotocol/client": "2.4.0",
"@modelcontextprotocol/sdk": "1.32.2",
"@modelcontextprotocol/server": "2.4.0",
"@opencode/plugin": "^2.0.24",
"@opencode/sdk": "^2.0.24",
"@tanstack/ai": ">=0.10.2 <2.0.0",
"@x402/core": "^2.0.0",
"@x402/evm": "^2.0.0",
"ai": "^6.0.0 || ^7.0.0",
"chat": "^4.29.0",
"just-bash": "^3.0.0",
"react": "^19.0.0",
"vite": ">=6.0.0 <9.0.0",
"zod": "^4.0.0"
},
"peerDependenciesMeta": {
"@ai-sdk/provider": {
"optional": true
},
"@ai-sdk/react": {
"optional": true
},
"@cloudflare/codemode": {
"optional": true
},
"@earendil-works/chord": {
"optional": true
},
"@earendil-works/pi-ai": {
"optional": true
},
"@earendil-works/pi-durable": {
"optional": true
},
"@earendil-works/pi-schema": {
"optional": true
},
"@modelcontextprotocol/sdk": {
"optional": true
},
"@modelcontextprotocol/server": {
"optional": true
},
"@opencode/plugin": {
"optional": true
},
"@opencode/sdk": {
"optional": true
},
"@tanstack/ai": {
"optional": true
},
"@x402/core": {
"optional": true
},
"@x402/evm": {
"optional": true
},
"ai": {
"optional": true
},
"chat": {
"optional": true
},
"just-bash": {
"optional": true
},
"react": {
"optional": true
},
"vite": {
"optional": true
}
},
"types": "dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js",
"require": "./dist/index.js"
},
"./types": {
"types": "./dist/types.d.ts",
"import": "./dist/types.js",
"require": "./dist/types.js"
},
"./client": {
"types": "./dist/client.d.ts",
"import": "./dist/client.js",
"require": "./dist/client.js"
},
"./routing": {
"types": "./dist/routing/index.d.ts",
"import": "./dist/routing/index.js",
"require": "./dist/routing/index.js"
},
"./streams": {
"types": "./dist/streams/index.d.ts",
"import": "./dist/streams/index.js",
"require": "./dist/streams/index.js"
},
"./context": {
"types": "./dist/context/index.d.ts",
"import": "./dist/context/index.js",
"require": "./dist/context/index.js"
},
"./sessions": {
"types": "./dist/sessions/index.d.ts",
"import": "./dist/sessions/index.js",
"require": "./dist/sessions/index.js"
},
"./tasks": {
"types": "./dist/tasks/index.d.ts",
"import": "./dist/tasks/index.js",
"require": "./dist/tasks/index.js"
},
"./lifecycle": {
"types": "./dist/lifecycle/index.d.ts",
"import": "./dist/lifecycle/index.js",
"require": "./dist/lifecycle/index.js"
},
"./harness/ai-sdk": {
"types": "./dist/harness/ai-sdk/index.d.ts",
"import": "./dist/harness/ai-sdk/index.js",
"require": "./dist/harness/ai-sdk/index.js"
},
"./harness/opencode": {
"types": "./dist/harness/opencode/index.d.ts",
"import": "./dist/harness/opencode/index.js",
"require": "./dist/harness/opencode/index.js"
},
"./harness/pi": {
"types": "./dist/harness/pi/index.d.ts",
"import": "./dist/harness/pi/index.js",
"require": "./dist/harness/pi/index.js"
},
"./harness/think": {
"types": "./dist/harness/think/index.d.ts",
"import": "./dist/harness/think/index.js",
"require": "./dist/harness/think/index.js"
},
"./harness/container": {
"types": "./dist/harness/container/index.d.ts",
"import": "./dist/harness/container/index.js",
"require": "./dist/harness/container/index.js"
},
"./harness/container/daemon": {
"types": "./dist/harness/container/daemon/index.d.ts",
"import": "./dist/harness/container/daemon/index.js",
"require": "./dist/harness/container/daemon/index.js"
},
"./harness/container/runtime": {
"types": "./dist/harness/container/runtime/index.d.ts",
"import": "./dist/harness/container/runtime/index.js",
"require": "./dist/harness/container/runtime/index.js"
},
"./harness/store": {
"types": "./dist/harness/store/index.d.ts",
"import": "./dist/harness/store/index.js",
"require": "./dist/harness/store/index.js"
},
"./agent-tools": {
"types": "./dist/agent-tools.d.ts",
"import": "./dist/agent-tools.js",
"require": "./dist/agent-tools.js"
},
"./codemode/ai": {
"types": "./dist/codemode/ai.d.ts",
"import": "./dist/codemode/ai.js",
"require": "./dist/codemode/ai.js"
},
"./mcp": {
"types": "./dist/mcp/index.d.ts",
"import": "./dist/mcp/index.js",
"require": "./dist/mcp/index.js"
},
"./mcp/client": {
"types": "./dist/mcp/client/index.d.ts",
"import": "./dist/mcp/client/index.js",
"require": "./dist/mcp/client/index.js"
},
"./mcp/server": {
"types": "./dist/mcp/server/index.d.ts",
"import": "./dist/mcp/server/index.js",
"require": "./dist/mcp/server/index.js"
},
"./mcp/do-oauth-client-provider": {
"types": "./dist/mcp/client/do-oauth-client-provider.d.ts",
"import": "./dist/mcp/client/do-oauth-client-provider.js",
"require": "./dist/mcp/client/do-oauth-client-provider.js"
},
"./observability": {
"types": "./dist/observability/index.d.ts",
"import": "./dist/observability/index.js",
"require": "./dist/observability/index.js"
},
"./models/ai-sdk": {
"types": "./dist/models/ai-sdk/index.d.ts",
"import": "./dist/models/ai-sdk/index.js",
"require": "./dist/models/ai-sdk/index.js"
},
"./models/opencode": {
"types": "./dist/models/opencode/index.d.ts",
"import": "./dist/models/opencode/index.js",
"require": "./dist/models/opencode/index.js"
},
"./models/pi-ai": {
"types": "./dist/models/pi-ai/index.d.ts",
"import": "./dist/models/pi-ai/index.js",
"require": "./dist/models/pi-ai/index.js"
},
"./observability/ai": {
"types": "./dist/observability/ai/index.d.ts",
"import": "./dist/observability/ai/index.js",
"require": "./dist/observability/ai/index.js"
},
"./react": {
"types": "./dist/react.d.ts",
"import": "./dist/react.js",
"require": "./dist/react.js"
},
"./websockets": {
"types": "./dist/websockets/index.d.ts",
"import": "./dist/websockets/index.js",
"require": "./dist/websockets/index.js"
},
"./state": {
"types": "./dist/state/index.d.ts",
"import": "./dist/state/index.js",
"require": "./dist/state/index.js"
},
"./schedule": {
"types": "./dist/schedule.d.ts",
"import": "./dist/schedule.js",
"require": "./dist/schedule.js"
},
"./queue": {
"types": "./dist/queue/index.d.ts",
"import": "./dist/queue/index.js",
"require": "./dist/queue/index.js"
},
"./schedules": {
"types": "./dist/schedules/index.d.ts",
"import": "./dist/schedules/index.js",
"require": "./dist/schedules/index.js"
},
"./schedules/parser": {
"types": "./dist/schedules/parser.d.ts",
"import": "./dist/schedules/parser.js",
"require": "./dist/schedules/parser.js"
},
"./workflows": {
"types": "./dist/workflows.d.ts",
"import": "./dist/workflows.js",
"require": "./dist/workflows.js"
},
"./experimental/webmcp": {
"types": "./dist/experimental/webmcp.d.ts",
"import": "./dist/experimental/webmcp.js",
"require": "./dist/experimental/webmcp.js"
},
"./x402": {
"types": "./dist/mcp/client/x402.d.ts",
"import": "./dist/mcp/client/x402.js",
"require": "./dist/mcp/client/x402.js"
},
"./chat": {
"types": "./dist/chat/index.d.ts",
"import": "./dist/chat/index.js",
"require": "./dist/chat/index.js"
},
"./chat/transport": {
"types": "./dist/chat/transport.d.ts",
"import": "./dist/chat/transport.js",
"require": "./dist/chat/transport.js"
},
"./chat/react": {
"types": "./dist/chat/react.d.ts",
"import": "./dist/chat/react.js",
"require": "./dist/chat/react.js"
},
"./chat-sdk": {
"types": "./dist/chat-sdk/index.d.ts",
"import": "./dist/chat-sdk/index.js",
"require": "./dist/chat-sdk/index.js"
},
"./ai-chat-agent": {
"types": "./dist/ai-chat-agent.d.ts",
"import": "./dist/ai-chat-agent.js",
"require": "./dist/ai-chat-agent.js"
},
"./ai-chat-v5-migration": {
"types": "./dist/ai-chat-v5-migration.d.ts",
"import": "./dist/ai-chat-v5-migration.js",
"require": "./dist/ai-chat-v5-migration.js"
},
"./ai-react": {
"types": "./dist/ai-react.d.ts",
"import": "./dist/ai-react.js",
"require": "./dist/ai-react.js"
},
"./ai-types": {
"types": "./dist/ai-types.d.ts",
"import": "./dist/ai-types.js",
"require": "./dist/ai-types.js"
},
"./email": {
"types": "./dist/email.d.ts",
"import": "./dist/email.js",
"require": "./dist/email.js"
},
"./browser": {
"types": "./dist/browser/index.d.ts",
"import": "./dist/browser/index.js",
"require": "./dist/browser/index.js"
},
"./browser/ai": {
"types": "./dist/browser/ai.d.ts",
"import": "./dist/browser/ai.js",
"require": "./dist/browser/ai.js"
},
"./browser/ai-sdk": {
"types": "./dist/browser/tools/ai-sdk.d.ts",
"import": "./dist/browser/tools/ai-sdk.js",
"require": "./dist/browser/tools/ai-sdk.js"
},
"./browser/tanstack-ai": {
"types": "./dist/browser/tools/tanstack-ai.d.ts",
"import": "./dist/browser/tools/tanstack-ai.js",
"require": "./dist/browser/tools/tanstack-ai.js"
},
"./websearch": {
"types": "./dist/web/search/index.d.ts",
"import": "./dist/web/search/index.js",
"require": "./dist/web/search/index.js"
},
"./websearch/pi": {
"types": "./dist/web/search/tools/pi.d.ts",
"import": "./dist/web/search/tools/pi.js",
"require": "./dist/web/search/tools/pi.js"
},
"./websearch/ai-sdk": {
"types": "./dist/web/search/tools/ai-sdk.d.ts",
"import": "./dist/web/search/tools/ai-sdk.js",
"require": "./dist/web/search/tools/ai-sdk.js"
},
"./websearch/tanstack-ai": {
"types": "./dist/web/search/tools/tanstack-ai.d.ts",
"import": "./dist/web/search/tools/tanstack-ai.js",
"require": "./dist/web/search/tools/tanstack-ai.js"
},
"./browser/pi": {
"types": "./dist/browser/tools/pi.d.ts",
"import": "./dist/browser/tools/pi.js",
"require": "./dist/browser/tools/pi.js"
},
"./webfetch": {
"types": "./dist/web/fetch/index.d.ts",
"import": "./dist/web/fetch/index.js",
"require": "./dist/web/fetch/index.js"
},
"./webfetch/pi": {
"types": "./dist/web/fetch/tools/pi.d.ts",
"import": "./dist/web/fetch/tools/pi.js",
"require": "./dist/web/fetch/tools/pi.js"
},
"./webfetch/ai-sdk": {
"types": "./dist/web/fetch/tools/ai-sdk.d.ts",
"import": "./dist/web/fetch/tools/ai-sdk.js",
"require": "./dist/web/fetch/tools/ai-sdk.js"
},
"./webfetch/tanstack-ai": {
"types": "./dist/web/fetch/tools/tanstack-ai.d.ts",
"import": "./dist/web/fetch/tools/tanstack-ai.js",
"require": "./dist/web/fetch/tools/tanstack-ai.js"
},
"./voice": {
"types": "./dist/voice/index.d.ts",
"import": "./dist/voice/index.js",
"require": "./dist/voice/index.js"
},
"./voice/types": {
"types": "./dist/voice/types.d.ts",
"import": "./dist/voice/types.js",
"require": "./dist/voice/types.js"
},
"./voice/client": {
"types": "./dist/voice/client.d.ts",
"import": "./dist/voice/client.js",
"require": "./dist/voice/client.js"
},
"./voice/react": {
"types": "./dist/voice/react.d.ts",
"import": "./dist/voice/react.js",
"require": "./dist/voice/react.js"
},
"./voice/errors": {
"types": "./dist/voice/errors.d.ts",
"import": "./dist/voice/errors.js",
"require": "./dist/voice/errors.js"
},
"./voice/workers-ai": {
"types": "./dist/voice/workers-ai.d.ts",
"import": "./dist/voice/workers-ai.js",
"require": "./dist/voice/workers-ai.js"
},
"./voice/sfu": {
"types": "./dist/voice/sfu.d.ts",
"import": "./dist/voice/sfu.js",
"require": "./dist/voice/sfu.js"
},
"./voice/text": {
"types": "./dist/voice/text.d.ts",
"import": "./dist/voice/text.js",
"require": "./dist/voice/text.js"
},
"./experimental/channels": {
"types": "./dist/experimental/channels/index.d.ts",
"import": "./dist/experimental/channels/index.js",
"require": "./dist/experimental/channels/index.js"
},
"./experimental/channels/email": {
"types": "./dist/experimental/channels/email/index.d.ts",
"import": "./dist/experimental/channels/email/index.js",
"require": "./dist/experimental/channels/email/index.js"
},
"./experimental/channels/slack": {
"types": "./dist/experimental/channels/slack/index.d.ts",
"import": "./dist/experimental/channels/slack/index.js",
"require": "./dist/experimental/channels/slack/index.js"
},
"./experimental/channels/telegram": {
"types": "./dist/experimental/channels/telegram/index.d.ts",
"import": "./dist/experimental/channels/telegram/index.js",
"require": "./dist/experimental/channels/telegram/index.js"
},
"./experimental/channels/web": {
"types": "./dist/experimental/channels/web/index.d.ts",
"import": "./dist/experimental/channels/web/index.js",
"require": "./dist/experimental/channels/web/index.js"
},
"./experimental/channels/web/client": {
"types": "./dist/experimental/channels/web/client.d.ts",
"import": "./dist/experimental/channels/web/client.js",
"require": "./dist/experimental/channels/web/client.js"
},
"./experimental/channels/web/ai-sdk": {
"types": "./dist/experimental/channels/web/ai-sdk.d.ts",
"import": "./dist/experimental/channels/web/ai-sdk.js",
"require": "./dist/experimental/channels/web/ai-sdk.js"
},
"./tsconfig": "./agents.tsconfig.json",
"./vite": {
"types": "./dist/vite.d.ts",
"import": "./dist/vite.js",
"require": "./dist/vite.js"
},
"./skills": {
"types": "./dist/skills/index.d.ts",
"import": "./dist/skills/index.js",
"require": "./dist/skills/index.js"
},
"./skills/tools/ai-sdk": {
"types": "./dist/skills/tools/ai-sdk.d.ts",
"import": "./dist/skills/tools/ai-sdk.js",
"require": "./dist/skills/tools/ai-sdk.js"
},
"./skills/runner": {
"types": "./dist/skills/runner.d.ts",
"import": "./dist/skills/runner.js",
"require": "./dist/skills/runner.js"
}
},
"publishConfig": {
"access": "public"
},
"files": [
"dist",
"docs",
"agents.tsconfig.json",
"README.md"
],
"nx": {
"implicitDependencies": [
"!@cloudflare/ai-chat"
],
"targets": {
"build": {
"inputs": [
"production",
"^production",
"{workspaceRoot}/docs/agents/**/*",
"{workspaceRoot}/scripts/copy-package-docs.ts"
],
"outputs": [
"{projectRoot}/dist",
"{projectRoot}/docs",
"{projectRoot}/src/harness/container/daemon-source.generated.ts"
]
}
}
},
"scripts": {
"build": "tsx ./scripts/build.ts",
"evals": "(cd evals; evalite)",
"test": "vitest --run",
"test:node": "vitest --project node",
"test:react": "vitest --project react",
"test:voice:workers": "vitest --project voice-workers",
"test:voice:react": "vitest --project voice-react",
"test:channels": "vitest --project channels",
"test:browser": "vitest run --config src/browser-tests/vitest.config.ts",
"test:otel-runtime": "vitest run --config src/otel-tests/vitest.config.ts",
"test:workers": "vitest --project workers",
"test:chat": "vitest --project chat",
"test:harness:opencode": "vitest --project harness-opencode",
"test:harness:pi": "vitest --project harness-pi",
"test:harness:container": "vitest --project harness-container --project harness-container-runtime",
"test:webmcp": "vitest --project webmcp",
"test:x402": "vitest --project x402",
"test:e2e": "vitest --run -c src/e2e-tests/vitest.config.ts",
"test:conformance": "pnpm run test:conformance:client && pnpm run test:conformance:server",
"test:conformance:client": "pnpm run test:conformance:client:stateless && pnpm run test:conformance:client:2025-11-25 && pnpm run test:conformance:client:2025-06-18 && pnpm run test:conformance:client:2025-03-26",
"test:conformance:client:stateless": "bash conformance/run.sh client-stateless",
"test:conformance:client:2025-11-25": "bash conformance/run.sh client-2025-11-25",
"test:conformance:client:2025-06-18": "bash conformance/run.sh client-2025-06-18",
"test:conformance:client:2025-03-26": "bash conformance/run.sh client-2025-03-26",
"test:conformance:server": "pnpm run test:conformance:server:handler && pnpm run test:conformance:server:handler:legacy-compat && pnpm run test:conformance:server:handler:legacy && pnpm run test:conformance:server:mcp-agent",
"test:conformance:server:mcp-agent": "bash conformance/run.sh server-mcp-agent",
"test:conformance:server:handler": "bash conformance/run.sh server-handler",
"test:conformance:server:handler:legacy-compat": "bash conformance/run.sh server-handler-legacy-compat",
"test:conformance:server:handler:legacy": "bash conformance/run.sh server-handler-legacy",
"test:harness:think": "vitest --project harness-think",
"build:daemon": "tsx ./scripts/build-daemon.ts"
}
}