[PR #162] [MERGED] feat: add support for Deno sandbox #173

Closed
opened 2026-02-16 06:17:21 -05:00 by yindo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/langchain-ai/deepagentsjs/pull/162
Author: @christian-bromann
Created: 2/1/2026
Status: Merged
Merged: 2/5/2026
Merged by: @christian-bromann

Base: mainHead: cb/vercel-sandbox


📝 Commits (10+)

📊 Changes

22 files changed (+3644 additions, -390 deletions)

View changed files

.changeset/clean-apes-relate.md (+5 -0)
📝 .codespellignore (+1 -0)
📝 .github/workflows/ci.yml (+1 -0)
📝 .gitignore (+1 -0)
📝 examples/package.json (+9 -8)
examples/sandbox/deno-sandbox.ts (+132 -0)
libs/providers/deno/.npmignore (+23 -0)
libs/providers/deno/README.md (+289 -0)
libs/providers/deno/package.json (+71 -0)
libs/providers/deno/src/auth.test.ts (+98 -0)
libs/providers/deno/src/auth.ts (+94 -0)
libs/providers/deno/src/index.ts (+63 -0)
libs/providers/deno/src/sandbox.int.test.ts (+539 -0)
libs/providers/deno/src/sandbox.test.ts (+784 -0)
libs/providers/deno/src/sandbox.ts (+856 -0)
libs/providers/deno/src/types.ts (+203 -0)
libs/providers/deno/tsconfig.json (+8 -0)
libs/providers/deno/tsdown.config.ts (+27 -0)
libs/providers/deno/vitest.config.ts (+40 -0)
📝 package.json (+4 -3)

...and 2 more files

📄 Description

Summary

  • Add @langchain/deno-sandbox package - a new Deno Sandbox backend for DeepAgents that enables agents to execute commands in isolated Linux microVMs using Deno Deploy's Sandbox infrastructure
  • Add example demonstrating DeepAgent with Deno Sandbox at examples/sandbox/deno-sandbox.ts
  • Simple authentication using DENO_DEPLOY_TOKEN environment variable

Features

The new @langchain/deno-sandbox package provides:

  • DenoSandbox class - Extends BaseSandbox to provide command execution, file operations, and sandbox lifecycle management
  • Factory methods - DenoSandbox.create() for new sandboxes and DenoSandbox.connect() to reconnect to existing ones
  • Full SDK access - Access the underlying Deno SDK via sandbox.sandbox property for advanced features (SSH, HTTP port exposure, JS eval, etc.)
  • Configurable resources - Set memory (768MB-4GB), lifetime (session or duration), and region

Usage

import { createDeepAgent } from "deepagents";
import { DenoSandbox } from "@langchain/deno";

const sandbox = await DenoSandbox.create({
  memoryMb: 1024,
  lifetime: "session",
});

try {
  const agent = createDeepAgent({
    model: new ChatAnthropic({ model: "claude-haiku-4-5" }),
    systemPrompt: "You are a coding assistant with sandbox access.",
    backend: sandbox,
  });

  await agent.invoke({ messages: [...] });
} finally {
  await sandbox.close();
}

Authentication

Set the DENO_DEPLOY_TOKEN environment variable:

  1. Go to https://app.deno.com → Settings → Organization Tokens
  2. Create a new token
  3. export DENO_DEPLOY_TOKEN=your_token_here

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/langchain-ai/deepagentsjs/pull/162 **Author:** [@christian-bromann](https://github.com/christian-bromann) **Created:** 2/1/2026 **Status:** ✅ Merged **Merged:** 2/5/2026 **Merged by:** [@christian-bromann](https://github.com/christian-bromann) **Base:** `main` ← **Head:** `cb/vercel-sandbox` --- ### 📝 Commits (10+) - [`e35ffd0`](https://github.com/langchain-ai/deepagentsjs/commit/e35ffd0fb27aeccd60d8688c10eb244d66e69e09) feat: add support for Vercel sandbox - [`02e9de4`](https://github.com/langchain-ai/deepagentsjs/commit/02e9de4dd5cd279a405546deee4db331754ce053) format - [`12b39a3`](https://github.com/langchain-ai/deepagentsjs/commit/12b39a32c0f6f2623ee1b8b6eb3491f25ec30a31) switch to deno - [`bb7cfee`](https://github.com/langchain-ai/deepagentsjs/commit/bb7cfeedec64aac4d4ac17e94574ddb6b8fd3044) cr - [`6ddc6f0`](https://github.com/langchain-ai/deepagentsjs/commit/6ddc6f077fe9bc31f5162d9c4a6b4f3804ecd707) format - [`dd2f551`](https://github.com/langchain-ai/deepagentsjs/commit/dd2f551c0a8cf2818fc35938c3a7808474bcc2c0) rename - [`6788034`](https://github.com/langchain-ai/deepagentsjs/commit/67880345460bcf47b12687d96f4cfc788d7b52a4) format - [`94a42b7`](https://github.com/langchain-ai/deepagentsjs/commit/94a42b7e4fb2488bf02064d2f69448e58fd8b3bc) remove skip - [`3addc4f`](https://github.com/langchain-ai/deepagentsjs/commit/3addc4f53e8f94e98179e55a7e84b4edc21f468f) feedback - [`d5ebbd5`](https://github.com/langchain-ai/deepagentsjs/commit/d5ebbd591298cf36432ce299c85542afcdb34de5) Apply suggestion from @hntrl ### 📊 Changes **22 files changed** (+3644 additions, -390 deletions) <details> <summary>View changed files</summary> ➕ `.changeset/clean-apes-relate.md` (+5 -0) 📝 `.codespellignore` (+1 -0) 📝 `.github/workflows/ci.yml` (+1 -0) 📝 `.gitignore` (+1 -0) 📝 `examples/package.json` (+9 -8) ➕ `examples/sandbox/deno-sandbox.ts` (+132 -0) ➕ `libs/providers/deno/.npmignore` (+23 -0) ➕ `libs/providers/deno/README.md` (+289 -0) ➕ `libs/providers/deno/package.json` (+71 -0) ➕ `libs/providers/deno/src/auth.test.ts` (+98 -0) ➕ `libs/providers/deno/src/auth.ts` (+94 -0) ➕ `libs/providers/deno/src/index.ts` (+63 -0) ➕ `libs/providers/deno/src/sandbox.int.test.ts` (+539 -0) ➕ `libs/providers/deno/src/sandbox.test.ts` (+784 -0) ➕ `libs/providers/deno/src/sandbox.ts` (+856 -0) ➕ `libs/providers/deno/src/types.ts` (+203 -0) ➕ `libs/providers/deno/tsconfig.json` (+8 -0) ➕ `libs/providers/deno/tsdown.config.ts` (+27 -0) ➕ `libs/providers/deno/vitest.config.ts` (+40 -0) 📝 `package.json` (+4 -3) _...and 2 more files_ </details> ### 📄 Description ## Summary - Add `@langchain/deno-sandbox` package - a new Deno Sandbox backend for DeepAgents that enables agents to execute commands in isolated Linux microVMs using Deno Deploy's Sandbox infrastructure - Add example demonstrating DeepAgent with Deno Sandbox at `examples/sandbox/deno-sandbox.ts` - Simple authentication using `DENO_DEPLOY_TOKEN` environment variable ## Features The new `@langchain/deno-sandbox` package provides: - **`DenoSandbox` class** - Extends `BaseSandbox` to provide command execution, file operations, and sandbox lifecycle management - **Factory methods** - `DenoSandbox.create()` for new sandboxes and `DenoSandbox.connect()` to reconnect to existing ones - **Full SDK access** - Access the underlying Deno SDK via `sandbox.sandbox` property for advanced features (SSH, HTTP port exposure, JS eval, etc.) - **Configurable resources** - Set memory (768MB-4GB), lifetime (session or duration), and region ## Usage ```typescript import { createDeepAgent } from "deepagents"; import { DenoSandbox } from "@langchain/deno"; const sandbox = await DenoSandbox.create({ memoryMb: 1024, lifetime: "session", }); try { const agent = createDeepAgent({ model: new ChatAnthropic({ model: "claude-haiku-4-5" }), systemPrompt: "You are a coding assistant with sandbox access.", backend: sandbox, }); await agent.invoke({ messages: [...] }); } finally { await sandbox.close(); } ``` ## Authentication Set the `DENO_DEPLOY_TOKEN` environment variable: 1. Go to https://app.deno.com → Settings → Organization Tokens 2. Create a new token 3. `export DENO_DEPLOY_TOKEN=your_token_here` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
yindo added the pull-request label 2026-02-16 06:17:21 -05:00
yindo closed this issue 2026-02-16 06:17:21 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langchain-ai/deepagentsjs#173