Commit Graph

65 Commits

Author SHA1 Message Date
github-actions[bot] 9a8ff1941a chore: version packages (#444)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## deepagents-acp@0.1.9

### Patch Changes

- [#501](https://github.com/langchain-ai/deepagentsjs/pull/501)
[`5b0eaea`](https://github.com/langchain-ai/deepagentsjs/commit/5b0eaea7b20461414983b71ba08d26d078b49214)
Thanks [@sukhmanghotraa](https://github.com/sukhmanghotraa)! - fix: bump
@langchain/core to ^1.1.42 across all workspace packages

- Updated dependencies
\[[`5b0eaea`](https://github.com/langchain-ai/deepagentsjs/commit/5b0eaea7b20461414983b71ba08d26d078b49214),
[`e90171a`](https://github.com/langchain-ai/deepagentsjs/commit/e90171abe4bcc76767246be470a7b17b94692f41),
[`8fd575f`](https://github.com/langchain-ai/deepagentsjs/commit/8fd575f06ca27cb0bef1a649aa34124a2c04ddd3),
[`3657941`](https://github.com/langchain-ai/deepagentsjs/commit/3657941ea36b21b9b512c1eb68a250ae79124383),
[`998d772`](https://github.com/langchain-ai/deepagentsjs/commit/998d772a07acc76fcc0d419e65b3c74a64d9ac52),
[`55f3bd8`](https://github.com/langchain-ai/deepagentsjs/commit/55f3bd8d74cac22d124fd6d1b11538dc2c2c2aec),
[`79e20e1`](https://github.com/langchain-ai/deepagentsjs/commit/79e20e18082a19b65094b953cd857908a7525801),
[`2442d7d`](https://github.com/langchain-ai/deepagentsjs/commit/2442d7d080c8a1008197eda526de52400303dd72),
[`43cd121`](https://github.com/langchain-ai/deepagentsjs/commit/43cd121133562abf0dee76c6db01f2bde0eb3fd3),
[`2994444`](https://github.com/langchain-ai/deepagentsjs/commit/2994444f32a6c0503defa6157652e742361abb00)]:
    -   deepagents@1.9.1

## deepagents@1.9.1

### Patch Changes

- [#501](https://github.com/langchain-ai/deepagentsjs/pull/501)
[`5b0eaea`](https://github.com/langchain-ai/deepagentsjs/commit/5b0eaea7b20461414983b71ba08d26d078b49214)
Thanks [@sukhmanghotraa](https://github.com/sukhmanghotraa)! - fix: bump
@langchain/core to ^1.1.42 across all workspace packages

- [#442](https://github.com/langchain-ai/deepagentsjs/pull/442)
[`e90171a`](https://github.com/langchain-ai/deepagentsjs/commit/e90171abe4bcc76767246be470a7b17b94692f41)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(deepagents): closer align store backend with Python

- [#496](https://github.com/langchain-ai/deepagentsjs/pull/496)
[`8fd575f`](https://github.com/langchain-ai/deepagentsjs/commit/8fd575f06ca27cb0bef1a649aa34124a2c04ddd3)
Thanks [@colifran](https://github.com/colifran)! - feat(deepagents):
implement functional skills for quickjs middleware

- [#448](https://github.com/langchain-ai/deepagentsjs/pull/448)
[`3657941`](https://github.com/langchain-ai/deepagentsjs/commit/3657941ea36b21b9b512c1eb68a250ae79124383)
Thanks [@ItayCoCo](https://github.com/ItayCoCo)! - fix: follow symlinks
in sandbox find commands by adding -L flag to find invocations in
buildLsCommand, buildFindCommand, and buildGrepCommand

- [#486](https://github.com/langchain-ai/deepagentsjs/pull/486)
[`998d772`](https://github.com/langchain-ai/deepagentsjs/commit/998d772a07acc76fcc0d419e65b3c74a64d9ac52)
Thanks [@colifran](https://github.com/colifran)! - feat(quickjs): remove
built-in VFS globals, add PTC instance injection and StateBackend
read-your-writes

- [#470](https://github.com/langchain-ai/deepagentsjs/pull/470)
[`55f3bd8`](https://github.com/langchain-ai/deepagentsjs/commit/55f3bd8d74cac22d124fd6d1b11538dc2c2c2aec)
Thanks [@jacoblee93](https://github.com/jacoblee93)! - Adds agent type
metadata prop to configurable

- [#451](https://github.com/langchain-ai/deepagentsjs/pull/451)
[`79e20e1`](https://github.com/langchain-ai/deepagentsjs/commit/79e20e18082a19b65094b953cd857908a7525801)
Thanks [@JadenKim-dev](https://github.com/JadenKim-dev)! - remove
unconditional @langchain/anthropic import

- [#465](https://github.com/langchain-ai/deepagentsjs/pull/465)
[`2442d7d`](https://github.com/langchain-ai/deepagentsjs/commit/2442d7d080c8a1008197eda526de52400303dd72)
Thanks [@hntrl](https://github.com/hntrl)! - fix(deepagents): route
summarization through active request model

- [#492](https://github.com/langchain-ai/deepagentsjs/pull/492)
[`43cd121`](https://github.com/langchain-ai/deepagentsjs/commit/43cd121133562abf0dee76c6db01f2bde0eb3fd3)
Thanks [@colifran](https://github.com/colifran)! - implement file system
permissions for fs middleware tools

- [#459](https://github.com/langchain-ai/deepagentsjs/pull/459)
[`2994444`](https://github.com/langchain-ai/deepagentsjs/commit/2994444f32a6c0503defa6157652e742361abb00)
Thanks [@open-swe](https://github.com/apps/open-swe)! - fix(deepagents):
skill loading should default to 1000 lines

## @langchain/quickjs@0.2.6

### Patch Changes

- [#501](https://github.com/langchain-ai/deepagentsjs/pull/501)
[`5b0eaea`](https://github.com/langchain-ai/deepagentsjs/commit/5b0eaea7b20461414983b71ba08d26d078b49214)
Thanks [@sukhmanghotraa](https://github.com/sukhmanghotraa)! - fix: bump
@langchain/core to ^1.1.42 across all workspace packages

- [#496](https://github.com/langchain-ai/deepagentsjs/pull/496)
[`8fd575f`](https://github.com/langchain-ai/deepagentsjs/commit/8fd575f06ca27cb0bef1a649aa34124a2c04ddd3)
Thanks [@colifran](https://github.com/colifran)! - feat(deepagents):
implement functional skills for quickjs middleware

- [#486](https://github.com/langchain-ai/deepagentsjs/pull/486)
[`998d772`](https://github.com/langchain-ai/deepagentsjs/commit/998d772a07acc76fcc0d419e65b3c74a64d9ac52)
Thanks [@colifran](https://github.com/colifran)! - feat(quickjs): remove
built-in VFS globals, add PTC instance injection and StateBackend
read-your-writes

- [#498](https://github.com/langchain-ai/deepagentsjs/pull/498)
[`192bbd7`](https://github.com/langchain-ai/deepagentsjs/commit/192bbd7109817a826aa6bd982e16b54b5a5c8cb5)
Thanks [@colifran](https://github.com/colifran)! - fix(quickjs): bound
console buffering at capture time

- [#497](https://github.com/langchain-ai/deepagentsjs/pull/497)
[`79dcf9a`](https://github.com/langchain-ai/deepagentsjs/commit/79dcf9ae4567fcce71ea7e529f332baf6a3d6dcd)
Thanks [@colifran](https://github.com/colifran)! - feat(quickjs): add
maxPtcCallsbudget for ptc calls

- [#492](https://github.com/langchain-ai/deepagentsjs/pull/492)
[`43cd121`](https://github.com/langchain-ai/deepagentsjs/commit/43cd121133562abf0dee76c6db01f2bde0eb3fd3)
Thanks [@colifran](https://github.com/colifran)! - implement file system
permissions for fs middleware tools

- [#494](https://github.com/langchain-ai/deepagentsjs/pull/494)
[`e64c7e3`](https://github.com/langchain-ai/deepagentsjs/commit/e64c7e31a7e62929d5d2a9048ad7df3315a546cd)
Thanks [@colifran](https://github.com/colifran)! - feat(quickjs):
implement delete session in after agent hook to clean up completed repl
sessions

- [#499](https://github.com/langchain-ai/deepagentsjs/pull/499)
[`352e487`](https://github.com/langchain-ai/deepagentsjs/commit/352e4876679fb708d9690ffeab82363ba02677dc)
Thanks [@hntrl](https://github.com/hntrl)! - fix(quickjs): add
ls_code_input_language metadata to js_eval tool

## @deepagents/evals@0.0.8

### Patch Changes

- Updated dependencies
\[[`5b0eaea`](https://github.com/langchain-ai/deepagentsjs/commit/5b0eaea7b20461414983b71ba08d26d078b49214),
[`e90171a`](https://github.com/langchain-ai/deepagentsjs/commit/e90171abe4bcc76767246be470a7b17b94692f41),
[`8fd575f`](https://github.com/langchain-ai/deepagentsjs/commit/8fd575f06ca27cb0bef1a649aa34124a2c04ddd3),
[`3657941`](https://github.com/langchain-ai/deepagentsjs/commit/3657941ea36b21b9b512c1eb68a250ae79124383),
[`998d772`](https://github.com/langchain-ai/deepagentsjs/commit/998d772a07acc76fcc0d419e65b3c74a64d9ac52),
[`55f3bd8`](https://github.com/langchain-ai/deepagentsjs/commit/55f3bd8d74cac22d124fd6d1b11538dc2c2c2aec),
[`79e20e1`](https://github.com/langchain-ai/deepagentsjs/commit/79e20e18082a19b65094b953cd857908a7525801),
[`2442d7d`](https://github.com/langchain-ai/deepagentsjs/commit/2442d7d080c8a1008197eda526de52400303dd72),
[`43cd121`](https://github.com/langchain-ai/deepagentsjs/commit/43cd121133562abf0dee76c6db01f2bde0eb3fd3),
[`2994444`](https://github.com/langchain-ai/deepagentsjs/commit/2994444f32a6c0503defa6157652e742361abb00)]:
    -   deepagents@1.9.1

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hunter Lovell <hunter@hntrl.io>
2026-05-04 09:43:36 -07:00
sukh 5b0eaea7b2 fix: bump @langchain/core to ^1.1.42 across all workspace packages (#501)
## Problem

When using `@langchain/google` as a model provider in the examples
workspace, the server crashes immediately with:

1. Runtime crash on startup:

    ```bash
    ERR_PACKAGE_PATH_NOT_EXPORTED: Package subpath './utils/uuid' is not
    defined by "exports" in @langchain/core/package.json
    ```

`@langchain/google` imports `@langchain/core/utils/uuid`, a subpath
added in `@langchain/core@1.1.42`. Both the examples workspace and
`libs/deepagents` were pinned to `^1.1.40` which does not export this
path.

 2. TypeScript type error after fixing the runtime crash:
 
    ```bash
Type 'ChatGoogle' is not assignable to type 'BaseLanguageModel<any,
BaseLanguageModelCallOptions>'
    ```
Even after bumping `@langchain/core` in `examples/` only, pnpm kept two
separate copies in its store - `1.1.40` for `deepagents` and `1.1.42`
for `@langchain/google`. TypeScript treats them as structurally
incompatible types because the type import paths differ.

## Fix

- Bump `@langchain/core` from `^1.1.40` → `^1.1.42` in all
`../package.json` files

## Testing

```bash
cd examples/research
pnpm dlx @langchain/langgraph-cli dev
# -> No ERR_PACKAGE_PATH_NOT_EXPORTED and agent starts correctly

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>
2026-05-01 15:41:53 -07:00
Hunter Lovell 352e487667 fix(quickjs): add ls_code_input_language metadata to js_eval tool (#499)
## Summary

Adds LangSmith code-language metadata to the QuickJS REPL evaluation
tool so tool inputs are correctly interpreted as JavaScript in traces.

## Changes

### @langchain/quickjs

- Added `metadata: { ls_code_input_language: "javascript" }` to the
`js_eval` tool definition in `createQuickJSMiddleware`.
- Extended middleware tool-registration tests to assert that `js_eval`
exposes `ls_code_input_language` metadata.
- Verified behavior with quickjs unit tests (`src/middleware.test.ts`).
2026-05-01 00:24:41 +00:00
Colin Francis 192bbd7109 fix(quickjs): bound console buffering at capture time (#498)
Port of https://github.com/langchain-ai/deepagents/pull/2999
2026-04-30 15:56:59 -07:00
Colin Francis 79dcf9ae45 feat(quickjs): add maxPtcCallsbudget for ptc calls (#497)
Port of https://github.com/langchain-ai/deepagents/pull/2994
2026-04-30 15:24:20 -07:00
Colin Francis 8fd575f06c feat(deepagents): implement functional skills for quickjs middleware (#496)
### Summary

Adds functional skill modules to the QuickJS REPL. Skills can now ship
JS/TS entrypoints via a module: frontmatter key on SKILL.md, which the
model dynamically imports at eval time with await
import("@/skills/<name>").

When skillsBackend is passed to createQuickJSMiddleware, the middleware
reads skillsMetadata from the current task state before each eval, scans
the source for skill references, and pushes the metadata + backend into
the session. The session wires a QuickJS module loader that lazily
fetches skill files from the backend, strips TypeScript syntax, and
caches the result for the lifetime of the session. Skills that are
referenced but not available on the agent short-circuit with a clear
error before evaluation starts.

On the deepagents side, SkillMetadata gains an optional module field
(validated and normalized from frontmatter), and formatSkillsList now
advertises importable skills in the system prompt with an await
import(...) hint.

```ts
const backend = new FilesystemBackend({ rootDir: "/project", virtualMode: true });

const agent = createDeepAgent({
  model: "claude-sonnet-4-6",
  backend,
  skills: ["/skills/"],
  middleware: [
    createQuickJSMiddleware({ skillsBackend: backend }),
  ],
});
```

### Tests

- Unit tests cover module path validation, TS syntax stripping, skill
loading (single/multi-file, error cases, bundle size cap), skill
reference scanning, module loader resolution and caching, and system
prompt formatting
- Ran an E2E eval that exercised the full pipeline from SKILL.md parse
through dynamic import and function call in the REPL, with a LangSmith
trace

### Benchmarks

#### memory: console_log concurrent
- Total time: 15820ms

| name | hz | min | max | mean | p75 | p99 | p995 | p999 | rme | samples
|

|--------------------------|---------|--------|--------|--------|--------|--------|--------|--------|--------|---------|
| 1 concurrent sessions | 145.91 | 1.8263 | 27.7702| 6.8536 | 9.1753 |
21.1492| 25.0420| 27.7702| ±5.30% | 730 |
| 8 concurrent sessions | 39.1773 | 15.5854| 61.5015| 25.5250| 27.8461|
49.0536| 61.5015| 61.5015| ±3.58% | 196 |
| 32 concurrent sessions | 13.9753 | 48.5504| 110.40 | 71.5547| 76.6394|
110.40 | 110.40 | 110.40 | ±3.72% | 70 |

---

#### memory: ptc_tools concurrent
- Total time: 16755ms

| name | hz | min | max | mean | p75 | p99 | p995 | p999 | rme | samples
|

|--------------------------|---------|--------|--------|--------|--------|--------|--------|--------|--------|---------|
| 1 concurrent sessions | 86.9205 | 4.1809 | 32.1833| 11.5048| 15.3222|
25.2676| 28.2697| 32.1833| ±4.76% | 435 |
| 8 concurrent sessions | 21.8310 | 33.5598| 69.0041| 45.8065| 50.8740|
60.2001| 69.0041| 69.0041| ±2.77% | 110 |
| 32 concurrent sessions | 7.0269 | 137.88 | 148.90 | 142.31 | 144.05 |
148.90 | 148.90 | 148.90 | ±0.70% | 36 |

---

#### throughput: single thread many iterations
- Total time: 31656ms

| name | hz | min | max | mean | p75 | p99 | p995 | p999 | rme | samples
|

|-------------------------------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|---------|
| 200 sequential evals (ptc + console.log) | 3.5897 | 240.92 | 347.19 |
278.58 | 289.81 | 341.02 | 347.19 | 347.19 | ±1.44% | 108 |
2026-04-30 13:13:40 -07:00
Colin Francis e64c7e31a7 feat(quickjs): implement delete session in after agent hook to clean up completed repl sessions (#494)
### Summary

ReplSession uses a static map to preserve QuickJS WASM runtime state
across js_eval calls within a run. Previously sessions were never
cleaned up, causing unbounded memory growth as each thread_id
accumulated a live WASM runtime for the lifetime of the process.

- Added ReplSession.deleteSession(key) to dispose of the QuickJS runtime
and removes the entry from the session map
- Added an afterAgent hook in createQuickJSMiddleware that calls
deleteSession for the current thread's session key at the end of each
agent run

Sessions still persist across all js_eval calls within a single run. The
map remains for correct concurrent thread isolation. Without it,
simultaneous runs from different threads would share a runtime.

### Tests

Unit tests covering the following scenarios:
- ReplSession.deleteSession disposes and removes an existing session
- ReplSession.deleteSession is a no-op for a key that does not exist
- afterAgent disposes the session for the finished thread
- afterAgent on a thread with no session does not throw
- afterAgent only removes the session for the finished thread, leaving
other active threads intact
2026-04-28 16:34:34 -07:00
Colin Francis 998d772a07 feat(quickjs): remove built-in VFS globals, add PTC instance injection and StateBackend read-your-writes (#486)
### Summary
- Removed built-in readFile/writeFile globals from the QuickJS REPL.
File I/O is now exclusively through PTC tools, keeping the REPL a pure
JS sandbox with no implicit side effects
- ptc now accepts StructuredToolInterface instances directly alongside
tool name strings. Custom tools can be injected into the REPL without
being registered on the agent
- StateBackend now provides read-your-writes semantics within a single
js_eval superstep by reading via __pregel_read with fresh=true. Pregel
already tracks pending sends in task.writes; asking for a fresh read
applies them through the reducer, removing the need for a manual write
buffer
- Removed ptc: boolean shorthand from QuickJSMiddlewareOptions; use the
array or object forms instead

### Tests
- Added 12 unit tests to state.test.ts covering write-then-read, chained
edits, ls/grep/glob/readRaw visibility, upload/download, duplicate write
error, edit-nonexistent, and superstep boundary behavior
(commitSends/clearPending)
- Expanded middleware.test.ts with PTC instance injection coverage
- Verified end-to-end with createDeepAgent + createQuickJSMiddleware
across 7 scenarios (write-read, write-edit-read, write-ls, write-grep,
write-glob, cross-eval, upload-download); traces confirmed in LangSmith

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>
2026-04-28 14:23:08 -07:00
Colin Francis 43cd121133 feat(deepagents): implement file system permissions for fs middleware tools (#492)
### Summary

- Adds a FilesystemPermission class and a permissions parameter to
createDeepAgent and SubAgent that controls which filesystem operations
each agent is allowed to perform
- Rules are evaluated first-match-wins with a permissive default; mode:
"deny" blocks the operation before any backend call
- Permissions are closed over at tool-creation time — no runtime config
threading, no ToolPolicy in langchain-core
- ls, glob, and grep enforce permissions in two passes: the base path
check throws early; results are post-filtered to strip entries the
caller can't read
- Subagents receive the parent agent's permissions by default; setting
permissions on a SubAgent is a full replacement, not a merge
- FilesystemPermission, FilesystemPermissionOptions,
FilesystemOperation, and PermissionMode are exported from the top-level
package entry point

### Tests

- permissions/types.test.ts — FilesystemPermission construction,
validation (rejects relative paths, .., ~), defaults
- permissions/enforce.test.ts — validatePath, globMatch (wildcards,
brace expansion, dotfiles), decidePathAccess (first-match-wins,
operation mismatch, multiple ops/paths)
- middleware/fs.permissions.test.ts — each fs tool (read, write, edit,
ls, glob, grep) with allow/deny rules and mock backends; verifies
backend is never called on a denied path; verifies execute is unaffected
- permissions/agent.permissions.test.ts —
CreateDeepAgentParams.permissions type and default; wiring to
createFilesystemMiddleware
- middleware/subagents.permissions.test.ts — SubAgent.permissions type;
?? resolution (inherit vs override vs own deny);
createFilesystemMiddleware behavior for each resolved-permissions case

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>
2026-04-28 14:13:00 -07:00
sukh 883581cda6 fix(deepagents): handle Windows absolute paths in tsdown external filter (#489)
## Fix: `ERR_MODULE_NOT_FOUND` on Windows when building `deepagents`

### Problem

Building `libs/deepagents` on Windows produces a `dist/index.js` that
imports
local modules with `.ts` extensions instead of bundling them:

```js
import { createDeepAgent } from "./agent.ts";
import { ConfigurationError } from "./errors.ts";
```

This causes an immediate crash at runtime for any consumer of the
library:

```
Error [ERR_MODULE_NOT_FOUND]: Cannot find module
  'C:\...\deepagentsjs\libs\deepagents\dist\agent.ts'
  imported from C:\...\deepagentsjs\libs\deepagents\dist\index.js
  ```

  **Root Cause**
The `external` filter in `libs/deepagents/tsdown.config.ts:` used a regex intended to match
only npm package names (which don't start with `.` or `/`):

```js
const external = [/^[^./]/];
```
On Unix absolute paths start with `/` so the regex correctly excludes them. On Windows absolute paths start with a drive letter (e.g. C:\...), which also doesn't start with `.` or `/` - so rolldown matches them as external, excludes them from the bundle, and leaves raw `.ts` references in the output.

**Fix**
Replace the regex with a function that explicitly excludes Windows-style
absolute paths:
```js
const external = (id: string) =>
!id.startsWith(".") && !id.startsWith("/") &&
!/^[A-Za-z]:[\\/]/.test(id);
```

After this change `pnpm -w run build` in `libs/deepagents` produces a fully
bundled `[dist/index.js]` with no `.ts` imports and examples run correctly on Windows.

Notes

- `deps.neverBundle` (the tsdown-recommended replacement for `[external]` is not yet functional in tsdown 0.21.7 / rolldown 1.0.0-rc.12 and causes a build error. This fix is the correct workaround until that API stabilises.

---------

Co-authored-by: Hunter Lovell <hunter@hntrl.io>
2026-04-27 13:57:05 -07:00
Jacob Lee 55f3bd8d74 feat(deepagents): Adds agent type metadata prop to configurable (#470)
Will be useful for trace display features

Python: https://github.com/langchain-ai/deepagents/pull/2788

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>
2026-04-17 22:03:59 -07:00
github-actions[bot] 02c1c7fa38 chore: version packages (#433)
* chore: version packages

* cr

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hunter Lovell <hunter@hntrl.io>
2026-04-07 08:48:53 -07:00
Hunter Lovell 89ee206ba6 chore: upgrade langgraph + langchain (#434) 2026-04-07 08:41:32 -07:00
Hunter Lovell 6830c24981 chore: patch package versions (#430) 2026-04-05 22:30:34 -07:00
dependabot[bot] 67d7423c82 build(deps-dev): bump typescript from 5.9.3 to 6.0.2 (#409)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 6.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 6.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 21:29:10 -07:00
Hunter Lovell ca5cc0acfb chore: merge alpha into main (#404)
* Revert "revert: "feat(deepagents): support multimodal files for backends (#298)" (#352)" (#353)

This reverts commit 03ea1c9729.

* revert: "revert: "feat(sdk): add async subagent middleware for remote LangGraph servers  (#323)" (#351)" (#354)

* Revert "revert: "feat(sdk): add async subagent middleware for remote LangGraph servers  (#323)" (#351)"

This reverts commit 367e43a5ed.

* use any backend protocol

* Reapply "chore(deepagents): refactor backend method names - `lsInfo` -> `ls`, …" (#349) (#356)

This reverts commit 573479d743.

* Reapply "chore(sdk): unify sync subagents and async subagents into a single pr…" (#348) (#355)

This reverts commit 96dc34ccb6.

* chore: align alpha with main (#358)

* fix(deepagents): remove orphaned ToolMessages for Gemini compatibility (#335)

* fix(deepagents): remove orphaned ToolMessages for Gemini compatibility

* Fix ToolMessages for Gemini compatibility

---------

Co-authored-by: Christian Bromann <git@bromann.dev>

* fix(deepagents): throw on built-in tool collision (#330)

* add error

* Create big-horses-fail.md

* add config error class

* cr

---------

Co-authored-by: Christian Bromann <git@bromann.dev>

* fix(deepagents): use `crypto.randomUUID()` instead of uuid (#336)

* fix(deepagents): use crypto.randomUUID() instead of uuid

* update pnpm-lock

* Create grumpy-weeks-wave.md

* Update libs/deepagents/src/middleware/fs.int.test.ts

* feat(deepagent): add LangSmithSandbox (#324)

* feat(deepagent): add LangSmithSandbox

* Change deepagents version from patch to minor

* format

* fix tests

* format

* make it a patch

* cr

* cr

* fix

* cr

* chore: version packages (#321)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* regen lockfile

* fix langsmith tests so that they use backend protocol v2 methods

* format

---------

Co-authored-by: pawel-twardziak <pawel.twardziak.dev@gmail.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
Co-authored-by: Maahir Sachdev <maahir.sachdev@langchain.dev>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat(deepagents): add completion notifier middleware for async subagents (#334)

Port of langchain-ai/deepagents#2119 to TypeScript. Adds a
createCompletionNotifierMiddleware that async subagents can use to
proactively notify their supervisor when they complete or error,
closing the gap where the supervisor only learns about completion
when someone calls check_async_task.

- New createCompletionNotifierMiddleware with afterAgent and
  wrapModelCall hooks
- Uses @langchain/langgraph-sdk Client to send runs.create() to the
  supervisor's thread
- Reads parent_thread_id from subagent state (injected by
  start_async_task)
- Derives task_id from runtime.configurable.thread_id
- Silently no-ops if parent context is missing
- Guards against duplicate notifications
- 22 unit tests covering all hooks, edge cases, and error paths

fix(deepagents): make url required in completion notifier (no ASGI in JS)

JS does not have ASGI transport like Python, so the url parameter
must be provided explicitly. Removed all ASGI references from docs
and the localhost fallback default.

fix(deepagents): throw on built-in tool collision (#330)

* add error

* Create big-horses-fail.md

* add config error class

* cr

---------

Co-authored-by: Christian Bromann <git@bromann.dev>

fix(deepagents): use `crypto.randomUUID()` instead of uuid (#336)

* fix(deepagents): use crypto.randomUUID() instead of uuid

* update pnpm-lock

* Create grumpy-weeks-wave.md

* Update libs/deepagents/src/middleware/fs.int.test.ts

feat(deepagent): add LangSmithSandbox (#324)

* feat(deepagent): add LangSmithSandbox

* Change deepagents version from patch to minor

* format

* fix tests

* format

* make it a patch

* cr

* cr

* fix

* cr

regen lockfile

linting

linting

add missing url property

chore: version packages (#321)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

changeset

regen lockfil

* chore: enter alpha pre-release

* chore: target alpha for releases

* chore: version packages (alpha) (#359)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* chore(deepagents): extend supported backend file types (#363)

* extend supported file types

* Create strong-tigers-share.md

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>

* chore(deepagents): implement async subagents + use stream example (#360)

* async subagents + use stream example

* fix lockfile

* format

* linting

* readme and linting

* format

* proactively send responses when subagents complete

* better examples

* feat(deepagents): rename completion notifier to completion callback and align with Python (#361)

* feat(deepagents): rename completion notifier to completion callback and align with Python PR

- Rename completion_notifier.ts -> completion_callback.ts to match Python's
  completion_callback.py naming
- Rename exports: createCompletionNotifierMiddleware -> createCompletionCallbackMiddleware,
  CompletionNotifierOptions -> CompletionCallbackOptions
- Rename state key: parent_thread_id -> callbackThreadId, option: parentGraphId -> callbackGraphId
- Make url optional (Python allows omitting for ASGI transport)
- Match Python's strict error behavior: throw on empty messages, non-AIMessage types,
  and missing callbackThreadId
- Add truncation suffix with task_id hint for long messages
- Use generic error message in wrapModelCall (don't leak error details)
- Remove duplicate notification guard (Python notifies on every error)
- Add extractCallbackContext to async_subagents.ts: injects callbackThreadId
  into subagent input state when launching via start_async_task
- Add tests for extractCallbackContext and callback context injection

* cr

* Rename completion notifier to completion callback

Renamed completion notifier to completion callback for consistency with Python.

* fix(sdk): `AsyncTask` `updatedAt` field doesn't update on task status changes (#400)

* update updatedAt field to change on any task update

* added changeset

* chore: set up self hosted async subagent example (#399)

* self hosted async subagent example

* with postgres

* formatting

* eslint disable no console

* fix dockerfile and readme

* Update examples/async-subagent-server/server.ts

Co-authored-by: Christian Bromann <git@bromann.dev>

---------

Co-authored-by: Christian Bromann <git@bromann.dev>

* chore(sdk): update async subagent middleware for agent protocol (#394)

* update async subagent middleware for agent protocol

* add changeset

* Update libs/deepagents/src/middleware/async_subagents.ts

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>

* Update libs/deepagents/src/middleware/async_subagents.ts

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>

* Update libs/deepagents/src/middleware/async_subagents.ts

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>

* differentiate agent protocol

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>

* chore(repo): migrate linting and formatting to oxc tooling (#391)

* chore(repo): migrate linting and formatting to oxc tooling

* cr

* cr

* chore(lint): clean up console disables for oxlint

* cr

* Apply suggestions from code review

Co-authored-by: Christian Bromann <git@bromann.dev>

---------

Co-authored-by: Christian Bromann <git@bromann.dev>

* refactor(deepagents): clean up createDeepAgent middleware wiring (#392)

* refactor(deepagents): clean up createDeepAgent middleware wiring

* fix(deepagents): avoid duplicate HITL middleware on subagents

* add comments, remove iife

* Create ten-masks-flow.md

* fix(deepagents): align prompt templates with runtime behavior (#393)

* fix(deepagents): align prompt templates with runtime behavior

* chore: add changeset for prompt alignment fixes

* cr

* cr

* fix store backend and tests

* lint

* fix rests and resolveBackend

* lint

* fix failing tests

* revert adapt resolve backend

* fix resolve backend

* better variable name

* fix backend factory to return a maybe promise

* mark resolve backend as internal

* format

---------

Co-authored-by: Colin Francis <131073567+colifran@users.noreply.github.com>
Co-authored-by: pawel-twardziak <pawel.twardziak.dev@gmail.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
Co-authored-by: Maahir Sachdev <maahir.sachdev@langchain.dev>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Colin Francis <colin.francis@langchain.dev>
2026-04-01 17:10:16 -07:00
github-actions[bot] a7c503bb97 chore: version packages (#396)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-30 21:38:24 -07:00
Christian Bromann 92b26577b8 fix(deepagents): bump langchain deps (#395)
* fix(deepagents): bump langchain deps

* formay

* Update changeset by removing deprecated packages

Removed several packages from the changeset.

* fix build
2026-03-30 21:24:30 -07:00
github-actions[bot] 02321d6fb1 chore: version packages (#388)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-30 13:13:32 -07:00
Christian Bromann 9301a9efcc fix(deepagents): update langchain packages (#390)
* fix(deepagents): update langchain packages

* Create warm-parents-prove.md

* format
2026-03-30 12:59:24 -07:00
Elliot Hesp ba5aafd761 feat(daytona): support autoArchiveInterval & autoDeleteInterval (#382)
* feat(daytona): support autoArchiveInterval &  autoDeleteInterval

* chore: add changset
2026-03-29 13:20:20 -07:00
github-actions[bot] 48f21c3c6f chore: version packages (#379)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-26 14:05:51 -07:00
dependabot[bot] d94803d549 build(deps): bump @daytonaio/sdk from 0.148.0 to 0.155.0 (#370)
Bumps [@daytonaio/sdk](https://github.com/daytonaio/daytona) from 0.148.0 to 0.155.0.
- [Release notes](https://github.com/daytonaio/daytona/releases)
- [Commits](https://github.com/daytonaio/daytona/compare/v0.148.0...v0.155.0)

---
updated-dependencies:
- dependency-name: "@daytonaio/sdk"
  dependency-version: 0.155.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-25 18:15:22 -07:00
dependabot[bot] 36c8459c09 build(deps): bump the patch-deps-updates-main group with 10 updates (#367)
Bumps the patch-deps-updates-main group with 10 updates:

| Package | From | To |
| --- | --- | --- |
| [@eslint/eslintrc](https://github.com/eslint/eslintrc) | `3.3.3` | `3.3.5` |
| [@langchain/core](https://github.com/langchain-ai/langchainjs) | `1.1.33` | `1.1.36` |
| [@langchain/langgraph](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core) | `1.2.3` | `1.2.5` |
| [@langchain/langgraph-checkpoint](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/checkpoint) | `1.0.0` | `1.0.1` |
| [tsdown](https://github.com/rolldown/tsdown) | `0.21.4` | `0.21.5` |
| [langchain](https://github.com/langchain-ai/langchainjs) | `1.2.34` | `1.2.37` |
| [yaml](https://github.com/eemeli/yaml) | `2.8.2` | `2.8.3` |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) | `1.3.18` | `1.3.25` |
| [modal](https://github.com/modal-labs/modal-client) | `0.7.1` | `0.7.3` |
| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.5.7` | `0.5.13` |


Updates `@eslint/eslintrc` from 3.3.3 to 3.3.5
- [Release notes](https://github.com/eslint/eslintrc/releases)
- [Changelog](https://github.com/eslint/eslintrc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslintrc/compare/eslintrc-v3.3.3...eslintrc-v3.3.5)

Updates `@langchain/core` from 1.1.33 to 1.1.36
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/@langchain/core@1.1.33...@langchain/core@1.1.36)

Updates `@langchain/langgraph` from 1.2.3 to 1.2.5
- [Release notes](https://github.com/langchain-ai/langgraphjs/releases)
- [Changelog](https://github.com/langchain-ai/langgraphjs/blob/main/libs/langgraph-core/CHANGELOG.md)
- [Commits](https://github.com/langchain-ai/langgraphjs/commits/@langchain/langgraph@1.2.5/libs/langgraph-core)

Updates `@langchain/langgraph-checkpoint` from 1.0.0 to 1.0.1
- [Release notes](https://github.com/langchain-ai/langgraphjs/releases)
- [Changelog](https://github.com/langchain-ai/langgraphjs/blob/main/libs/checkpoint/CHANGELOG.md)
- [Commits](https://github.com/langchain-ai/langgraphjs/commits/@langchain/langgraph-checkpoint@1.0.1/libs/checkpoint)

Updates `tsdown` from 0.21.4 to 0.21.5
- [Release notes](https://github.com/rolldown/tsdown/releases)
- [Commits](https://github.com/rolldown/tsdown/compare/v0.21.4...v0.21.5)

Updates `langchain` from 1.2.34 to 1.2.37
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/langchain@1.2.34...langchain@1.2.37)

Updates `yaml` from 2.8.2 to 2.8.3
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v2.8.2...v2.8.3)

Updates `@langchain/anthropic` from 1.3.18 to 1.3.25
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/@langchain/anthropic@1.3.18...@langchain/anthropic@1.3.25)

Updates `modal` from 0.7.1 to 0.7.3
- [Changelog](https://github.com/modal-labs/modal-client/blob/main/CHANGELOG_GO_JS.md)
- [Commits](https://github.com/modal-labs/modal-client/commits/go/v0.7.3)

Updates `langsmith` from 0.5.7 to 0.5.13
- [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases)
- [Commits](https://github.com/langchain-ai/langsmith-sdk/commits)

---
updated-dependencies:
- dependency-name: "@eslint/eslintrc"
  dependency-version: 3.3.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/core"
  dependency-version: 1.1.36
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/langgraph"
  dependency-version: 1.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/langgraph-checkpoint"
  dependency-version: 1.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: tsdown
  dependency-version: 0.21.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: langchain
  dependency-version: 1.2.37
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: yaml
  dependency-version: 2.8.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/anthropic"
  dependency-version: 1.3.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: modal
  dependency-version: 0.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: langsmith
  dependency-version: 0.5.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-25 11:57:00 -07:00
Christian Bromann 028f2f818f fix(deepagents): extend BackendFactory and make it async (#362)
* fix(deepagents): extend BackendFactory and make it async

* revert changes in old store

* Create funny-pears-clap.md

* cr

* cr

* cr
2026-03-25 11:45:20 -07:00
github-actions[bot] 63260d45be chore: version packages (#321)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-23 21:56:56 -07:00
Colin Francis 03ea1c9729 revert: "feat(deepagents): support multimodal files for backends (#298)" (#352)
* Revert "feat(deepagents): support multimodal files for backends (#298)"

This reverts commit aab678ad66.

* regen lock file

* fix empty string id check for sandbox protocols
2026-03-23 14:48:00 -07:00
Colin Francis 573479d743 Revert "chore(deepagents): refactor backend method names - lsInfo -> ls, …" (#349)
This reverts commit a5ba74eac2.
2026-03-23 13:46:06 -07:00
dependabot[bot] c73ab6b0c4 build(deps): bump @deno/sandbox from 0.12.0 to 0.13.2 (#342)
Bumps @deno/sandbox from 0.12.0 to 0.13.2.

---
updated-dependencies:
- dependency-name: "@deno/sandbox"
  dependency-version: 0.13.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 13:31:49 -07:00
dependabot[bot] 0bc3efec28 build(deps-dev): bump tsdown from 0.20.3 to 0.21.4 (#343)
Bumps [tsdown](https://github.com/rolldown/tsdown) from 0.20.3 to 0.21.4.
- [Release notes](https://github.com/rolldown/tsdown/releases)
- [Commits](https://github.com/rolldown/tsdown/compare/v0.20.3...v0.21.4)

---
updated-dependencies:
- dependency-name: tsdown
  dependency-version: 0.21.4
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 13:01:21 -07:00
dependabot[bot] 75b3e71263 build(deps): bump the patch-deps-updates-main group with 9 updates (#338)
Bumps the patch-deps-updates-main group with 9 updates:

| Package | From | To |
| --- | --- | --- |
| [@eslint/eslintrc](https://github.com/eslint/eslintrc) | `3.3.3` | `3.3.5` |
| [@langchain/core](https://github.com/langchain-ai/langchainjs) | `1.1.33` | `1.1.35` |
| [@langchain/langgraph](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core) | `1.2.3` | `1.2.5` |
| [@langchain/langgraph-checkpoint](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/checkpoint) | `1.0.0` | `1.0.1` |
| [langchain](https://github.com/langchain-ai/langchainjs) | `1.2.34` | `1.2.36` |
| [yaml](https://github.com/eemeli/yaml) | `2.8.2` | `2.8.3` |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) | `1.3.18` | `1.3.25` |
| [modal](https://github.com/modal-labs/modal-client) | `0.7.1` | `0.7.3` |
| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.5.7` | `0.5.12` |


Updates `@eslint/eslintrc` from 3.3.3 to 3.3.5
- [Release notes](https://github.com/eslint/eslintrc/releases)
- [Changelog](https://github.com/eslint/eslintrc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslintrc/compare/eslintrc-v3.3.3...eslintrc-v3.3.5)

Updates `@langchain/core` from 1.1.33 to 1.1.35
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/@langchain/core@1.1.33...@langchain/core@1.1.35)

Updates `@langchain/langgraph` from 1.2.3 to 1.2.5
- [Release notes](https://github.com/langchain-ai/langgraphjs/releases)
- [Changelog](https://github.com/langchain-ai/langgraphjs/blob/main/libs/langgraph-core/CHANGELOG.md)
- [Commits](https://github.com/langchain-ai/langgraphjs/commits/@langchain/langgraph@1.2.5/libs/langgraph-core)

Updates `@langchain/langgraph-checkpoint` from 1.0.0 to 1.0.1
- [Release notes](https://github.com/langchain-ai/langgraphjs/releases)
- [Changelog](https://github.com/langchain-ai/langgraphjs/blob/main/libs/checkpoint/CHANGELOG.md)
- [Commits](https://github.com/langchain-ai/langgraphjs/commits/@langchain/langgraph-checkpoint@1.0.1/libs/checkpoint)

Updates `langchain` from 1.2.34 to 1.2.36
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/langchain@1.2.34...langchain@1.2.36)

Updates `yaml` from 2.8.2 to 2.8.3
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v2.8.2...v2.8.3)

Updates `@langchain/anthropic` from 1.3.18 to 1.3.25
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/@langchain/anthropic@1.3.18...@langchain/anthropic@1.3.25)

Updates `modal` from 0.7.1 to 0.7.3
- [Changelog](https://github.com/modal-labs/modal-client/blob/main/CHANGELOG_GO_JS.md)
- [Commits](https://github.com/modal-labs/modal-client/commits/go/v0.7.3)

Updates `langsmith` from 0.5.7 to 0.5.12
- [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases)
- [Commits](https://github.com/langchain-ai/langsmith-sdk/commits)

---
updated-dependencies:
- dependency-name: "@eslint/eslintrc"
  dependency-version: 3.3.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/core"
  dependency-version: 1.1.35
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/langgraph"
  dependency-version: 1.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/langgraph-checkpoint"
  dependency-version: 1.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: langchain
  dependency-version: 1.2.36
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: yaml
  dependency-version: 2.8.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/anthropic"
  dependency-version: 1.3.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: modal
  dependency-version: 0.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: langsmith
  dependency-version: 0.5.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 09:27:11 -07:00
jzsp 8dc4e9ca29 feat(node-vfs): enhance VfsSandbox to support absolute paths execute (#322)
* feat(node-vfs): enhance VfsSandbox to support absolute paths in commands and add related integration tests

- Implemented a method to rewrite absolute paths in commands referencing VFS entries to point to the temporary directory.
- Added integration tests for executing multi-file Node.js projects with both absolute and relative paths.
- Updated existing tests to clarify path usage in commands.

* fix(node-vfs): add changeset for rewriting absolute VFS paths in execute() commands

* fix: ci

---------

Co-authored-by: wangjiangjian.0224 <wangjiangjian.0224@bytedance.com>
2026-03-20 13:44:12 -07:00
Colin Francis a5ba74eac2 chore(deepagents): refactor backend method names - lsInfo -> ls, grepRaw -> grep, globInfo -> glob (#318)
* update backend protocol interface, types, and utils

* refactor state backend

* refactor store backend

* clean up

* unit tests

* refactor filesystem

* unit tests

* skip binary files in literal search for filesystem backend

* refactor base sandbox

* base sandbox unit tests

* refactor local shell backend

* refactor composite backend

* composite and local shell backend changes

* refactor fs middleware

* unit tests and fixed issue where createFileData was removed - this would be breaking

* refactor acp filesystem backend

* backend protocol v2

* simplify createFileData

* docstrings

* adapt backend protocol tests

* sandbox protocol v2

* format

* standard tests

* fix tests

* fix tests

* fix tests

* fix node vfs

* lint fix

* empty commit

* fix download files to handle binary

* any backend protocol

* lint

* make backend protocol v2 extend backend protocol

* make backend unknown type for is sandbox backend check

* add changeset

* add max binary file size

* add svg

* separate v1 and v2

* format

* lint

* format

* update glob, ls, read raw return types

* unit test fixes

* fix tests

* restore standard-tests package

* fix integ tests - make standard-tests backward compatible

* remove deleted sandbox adapter

* standard-test refactor for backwards compat

* linting

* fix tests

* type guards and improved guard checks

* store mime type with v2 file data

* make explicit v1 types

* fix locall shell int types

* fix bug

* edge case

* update providers

* lint

* fix repl

* read raw tests

* support string or unint8arrays

* clean comments, docstrings, and fix issue where we were throwing a string

* don't re-wrap uint8arrays

* clean up test names

* fix quickjs

* poison pill and uint8array issues

* add back video and audio support

* bump langgraph-checkpoint version for json plus serializer changes

* fix lock after merge with main

* remove explicit cast

* use instance of Uint8Array for FileDataV2 schema

* update changeset

* update backend protocol interface, types, and utils

* refactor state backend

* refactor store backend

* clean up

* unit tests

* refactor filesystem

* unit tests

* skip binary files in literal search for filesystem backend

* refactor base sandbox

* base sandbox unit tests

* refactor local shell backend

* refactor composite backend

* composite and local shell backend changes

* refactor fs middleware

* unit tests and fixed issue where createFileData was removed - this would be breaking

* refactor acp filesystem backend

* backend protocol v2

* simplify createFileData

* docstrings

* adapt backend protocol tests

* sandbox protocol v2

* format

* standard tests

* fix tests

* fix tests

* fix tests

* fix node vfs

* lint fix

* empty commit

* fix download files to handle binary

* any backend protocol

* lint

* make backend protocol v2 extend backend protocol

* make backend unknown type for is sandbox backend check

* add changeset

* add max binary file size

* add svg

* separate v1 and v2

* format

* lint

* format

* update glob, ls, read raw return types

* unit test fixes

* fix tests

* restore standard-tests package

* fix integ tests - make standard-tests backward compatible

* remove deleted sandbox adapter

* standard-test refactor for backwards compat

* linting

* fix tests

* type guards and improved guard checks

* store mime type with v2 file data

* make explicit v1 types

* fix locall shell int types

* fix bug

* edge case

* update providers

* lint

* fix repl

* read raw tests

* support string or unint8arrays

* clean comments, docstrings, and fix issue where we were throwing a string

* don't re-wrap uint8arrays

* clean up test names

* fix quickjs

* poison pill and uint8array issues

* add back video and audio support

* bump langgraph-checkpoint version for json plus serializer changes

* fix lock after merge with main

* remove explicit cast

* use instance of Uint8Array for FileDataV2 schema

* refactor backend methods

* add changeset

* changesets

* regen lock
2026-03-17 19:17:35 -07:00
Colin Francis aab678ad66 feat(deepagents): support multimodal files for backends (#298)
* update backend protocol interface, types, and utils

* refactor state backend

* refactor store backend

* clean up

* unit tests

* refactor filesystem

* unit tests

* skip binary files in literal search for filesystem backend

* refactor base sandbox

* base sandbox unit tests

* refactor local shell backend

* refactor composite backend

* composite and local shell backend changes

* refactor fs middleware

* unit tests and fixed issue where createFileData was removed - this would be breaking

* refactor acp filesystem backend

* backend protocol v2

* simplify createFileData

* docstrings

* adapt backend protocol tests

* sandbox protocol v2

* format

* standard tests

* fix tests

* fix tests

* fix tests

* fix node vfs

* lint fix

* empty commit

* fix download files to handle binary

* any backend protocol

* lint

* make backend protocol v2 extend backend protocol

* make backend unknown type for is sandbox backend check

* add changeset

* add max binary file size

* add svg

* separate v1 and v2

* format

* lint

* format

* update glob, ls, read raw return types

* unit test fixes

* fix tests

* restore standard-tests package

* fix integ tests - make standard-tests backward compatible

* remove deleted sandbox adapter

* standard-test refactor for backwards compat

* linting

* fix tests

* fix integ test

* type guards and improved guard checks

* store mime type with v2 file data

* make explicit v1 types

* fix locall shell int types

* fix bug

* edge case

* update providers

* lint

* fix repl

* read raw tests

* support string or unint8arrays

* clean comments, docstrings, and fix issue where we were throwing a string

* don't re-wrap uint8arrays

* clean up test names

* fix quickjs

* poison pill and uint8array issues

* add back video and audio support

* bump langgraph-checkpoint version for json plus serializer changes

* fix lock after merge with main

* remove explicit cast

* use instance of Uint8Array for FileDataV2 schema

* update changeset

* regen lock
2026-03-17 19:06:04 -07:00
github-actions[bot] a649a896fd chore: version packages (#310)
* chore: version packages

* cr

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hunter Lovell <hunter@hntrl.io>
2026-03-17 17:23:15 -07:00
Hunter Lovell 3394e22016 chore: bump langchain version (#319)
* chore: bump langchain version

* cr

* cr
2026-03-17 17:05:57 -07:00
Hunter Lovell 01da08863a fix(deepagents, quickjs): read store from runtime/config.store instead of config.configurable (#317) 2026-03-17 15:15:57 -07:00
Hunter Lovell b805b3e49c fix(modal): prevent sandbox timeout in integration tests (#300) 2026-03-11 12:44:33 -07:00
Maahir Sachdev eeaca6d828 fix: update various issues in QuickJS REPL (#293)
* fix 3 bugs

* fix bugs

* remove state hint

* update

* cr

---------

Co-authored-by: Hunter Lovell <hunter@hntrl.io>
2026-03-11 09:24:00 -07:00
github-actions[bot] 1a503b23df chore: version packages (#282)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-10 15:42:33 -07:00
Hunter Lovell 454fa26804 feat: add quickjs middleware (#261)
* feat(quickjs): add @langchain/quickjs — sandboxed JS/TS REPL with PTC, env isolation, and RLM support

* chore: split changesets into quickjs minor + deepagents patch

* refactor(quickjs): remove env/secrets, lazy runtime, buffered writes, fix thread_id propagation

- Remove entire env/secrets system (EnvVarConfig, EnvConfig, secretRef, injectEnv, blockEnvLeaks, checkEnvAccess, generateEnvPrompt)
- Lazy-load QuickJS WASM runtime on first eval via ensureStarted()
- Buffer file writes in pendingWrites[], flush after eval via flushWrites(backend)
- Make ReplSession.getOrCreate() synchronous (runtime init deferred)
- Add toJSON()/fromJSON() for session serialization
- Fix thread_id propagation: move session creation from wrapModelCall (which lacks configurable) to tool handler (which has config.configurable.thread_id)
- Remove dead starting map from ReplSession
- Add integration test verifying REPL state persists across js_eval calls
- Add thread_id propagation unit tests
- Remove secret-env-agent example
- 68 unit tests + 1 integration test passing, types clean

* cr

* cr

* docs(quickjs): add README and LICENSE, fix lint errors

* cr

* cr
2026-03-06 08:49:17 +00:00
dependabot[bot] b4efd5549f build(deps): bump @daytonaio/sdk from 0.144.0 to 0.148.0 (#267)
Bumps [@daytonaio/sdk](https://github.com/daytonaio/daytona) from 0.144.0 to 0.148.0.
- [Release notes](https://github.com/daytonaio/daytona/releases)
- [Commits](https://github.com/daytonaio/daytona/compare/v0.144.0...v0.148.0)

---
updated-dependencies:
- dependency-name: "@daytonaio/sdk"
  dependency-version: 0.148.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 13:11:57 -08:00
dependabot[bot] ab36d2715f build(deps): bump @daytonaio/sdk from 0.143.0 to 0.144.0 (#253)
Bumps [@daytonaio/sdk](https://github.com/daytonaio/daytona) from 0.143.0 to 0.144.0.
- [Release notes](https://github.com/daytonaio/daytona/releases)
- [Commits](https://github.com/daytonaio/daytona/compare/v0.143.0...v0.144.0)

---
updated-dependencies:
- dependency-name: "@daytonaio/sdk"
  dependency-version: 0.144.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-23 21:14:20 -08:00
dependabot[bot] 15f2b99f1c build(deps): bump modal from 0.6.2 to 0.7.1 (#254)
Bumps [modal](https://github.com/modal-labs/libmodal) from 0.6.2 to 0.7.1.
- [Changelog](https://github.com/modal-labs/libmodal/blob/main/CHANGELOG.md)
- [Commits](https://github.com/modal-labs/libmodal/compare/modal-go/v0.6.2...modal-go/v0.7.1)

---
updated-dependencies:
- dependency-name: modal
  dependency-version: 0.7.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-23 20:59:58 -08:00
github-actions[bot] d4e81b58cc chore: version packages (#224)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-18 12:46:01 -08:00
Christian Bromann a827af7be8 feat(standard-tests): make test suite framework-agnostic and publish as public package (#237)
* feat(standard-tests): make test suite framework-agnostic and publish as public package

Move @langchain/sandbox-standard-tests from internal/ to libs/ for
publishing. The test suite no longer hard-depends on Vitest — test-runner
primitives (describe, it, expect, beforeAll, afterAll) are supplied via
a `runner` config property, letting consumers use any framework.

A convenience sub-export at @langchain/sandbox-standard-tests/vitest
pre-fills the runner with Vitest primitives for zero-config usage.

* format

* no underscore

* adding copies of license files

* adding changesets

* add build step

* fix test
2026-02-18 12:14:01 -08:00
dependabot[bot] a34854e68c build(deps): bump the minor-deps-updates-main group with 4 updates (#233)
Bumps the minor-deps-updates-main group with 4 updates: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint), [dotenv](https://github.com/motdotla/dotenv), [@daytonaio/sdk](https://github.com/daytonaio/daytona) and @deno/sandbox.


Updates `typescript-eslint` from 8.55.0 to 8.56.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.0/packages/typescript-eslint)

Updates `dotenv` from 17.2.4 to 17.3.1
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.2.4...v17.3.1)

Updates `@daytonaio/sdk` from 0.139.0 to 0.143.0
- [Release notes](https://github.com/daytonaio/daytona/releases)
- [Commits](https://github.com/daytonaio/daytona/compare/v0.139.0...v0.143.0)

Updates `@deno/sandbox` from 0.11.0 to 0.12.0

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.56.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: dotenv
  dependency-version: 17.3.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: "@daytonaio/sdk"
  dependency-version: 0.143.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: "@deno/sandbox"
  dependency-version: 0.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-17 11:21:48 -08:00
github-actions[bot] 7f82473721 chore: version packages (#217)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-10 15:18:49 -08:00
Christian Bromann 786053fe42 feat(deno): better support for sandbox volumes (#216)
* feat(deno): better support for sandbox volumes

* format

* cr

* format
2026-02-10 15:17:41 -08:00
dependabot[bot] a65c294c7e build(deps): bump the minor-deps-updates-main group with 3 updates (#213)
Bumps the minor-deps-updates-main group with 3 updates: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint), [@daytonaio/sdk](https://github.com/daytonaio/daytona) and @deno/sandbox.


Updates `typescript-eslint` from 8.54.0 to 8.55.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.55.0/packages/typescript-eslint)

Updates `@daytonaio/sdk` from 0.135.0 to 0.139.0
- [Release notes](https://github.com/daytonaio/daytona/releases)
- [Commits](https://github.com/daytonaio/daytona/compare/v0.135.0...v0.139.0)

Updates `@deno/sandbox` from 0.2.2 to 0.11.0

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.55.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: "@daytonaio/sdk"
  dependency-version: 0.139.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: "@deno/sandbox"
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 12:59:44 -08:00