UNPKG

agents

Version:

A home for your AI agents

619 lines • 20.6 kB
{ "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" } }