Commit Graph

267 Commits

Author SHA1 Message Date
github-actions[bot] 381e854d01 chore: version packages (#198)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/modal@0.1.2 deepagents@1.7.2
2026-02-06 15:02:01 -08:00
Christian Bromann e4b5892b0e fix(deepagents): runtime agnostic sandbox operations (#197)
* fix(modal): add token to run in CI

* improve fs operations

* format

* changesets
2026-02-06 14:59:51 -08:00
github-actions[bot] 7cf506eee6 chore: version packages (#196)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/daytona@0.1.1 @langchain/deno@0.1.1 @langchain/modal@0.1.1 @langchain/node-vfs@0.1.1 deepagents@1.7.1
2026-02-06 13:31:18 -08:00
Christian Bromann 731b01ed17 fix(deepagents): polish sandbox interfaces (#194)
* fix(deepagents): polish sandbox interfaces

* revert

* global ref

* format

* changesets

* tweak CI

* fix
2026-02-06 13:27:10 -08:00
Christian Bromann d31f6cbff5 test(sandbox): add standard tests for all provider (#195)
* test(sandbox): add standard tests for all provider

* cr

* fix: allow to clean all daytona sandboxes

* apply CI labels

* withRetry

* bump retry

* format

* cr

* cr

* tweak CI
2026-02-06 13:13:52 -08:00
github-actions[bot] e1a9a62d12 chore: version packages (#192)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/daytona@0.1.0 @langchain/deno@0.1.0 @langchain/modal@0.1.0 @langchain/node-vfs@0.1.0 deepagents@1.7.0
2026-02-04 22:57:14 -08:00
Christian Bromann f71ba73fdd fix: pnpm-lock 2026-02-04 22:55:48 -08:00
Christian Bromann cf32056c32 fix: peerdep 2026-02-04 22:54:52 -08:00
Christian Bromann 7c7c1eff77 fix: switch to minor release 2026-02-04 22:50:53 -08:00
Christian Bromann 010d49c2f3 fix: tweak changesets config 2026-02-04 22:47:25 -08:00
Christian Bromann b7c32ee168 fix: add 0.0.1 changelog entries for provider packages 2026-02-04 22:40:27 -08:00
Christian Bromann 115b76403d fix: change changesets back to minor 2026-02-04 22:35:13 -08:00
Christian Bromann a18575f9f7 fix: create empty changeset files 2026-02-04 22:28:14 -08:00
Christian Bromann b5e719c8aa chore: add missing changesets 2026-02-04 22:21:32 -08:00
Christian Bromann dd848abf24 fix: update changesets 2026-02-04 22:18:24 -08:00
Christian Bromann 0d3aa48230 feat(daytona): adding sandbox integration (#188)
* feat: add support for Vercel sandbox

* format

* switch to deno

* cr

* format

* rename

* format

* auto bump peer dep

* format

* feat(daytona): adding sandbox integration

* format

* test fix

* format

* add support for

* add changesets

* feat: add modal sandbox (#190)

* feat: add modal sandbox

* chore: format

* cr

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>
2026-02-04 22:11:38 -08:00
Christian Bromann 988b44c129 feat: add SandboxProvider abstraction (#165)
* feat: add support for Vercel sandbox

* format

* switch to deno

* cr

* format

* feat: add support for Vercel sandbox

* feat: add VFS sandbox

* format

* rm vercel

* rename

* format

* rename

* feat: add support for Vercel sandbox

* format

* switch to deno

* cr

* feat: add support for Vercel sandbox

* feat: add VFS sandbox

* format

* rm vercel

* rename

* rename

* feat: add support for Vercel sandbox

* feat: support for sandbox provider

* not needed

* format

* add changeset

* missed file

* tweak

* format

* change changeset
2026-02-04 21:49:22 -08:00
Christian Bromann 80a41ef018 chore(node-vfs): add changeset 2026-02-04 21:37:41 -08:00
Christian Bromann 2789ebd9d9 feat: add VFS sandbox (#163)
* feat: add support for Vercel sandbox

* format

* switch to deno

* cr

* format

* feat: add support for Vercel sandbox

* feat: add VFS sandbox

* format

* rm vercel

* rename

* format

* rename

* skip if on windows
2026-02-04 21:35:46 -08:00
Christian Bromann c0e676a1a5 feat: add support for Deno sandbox (#162)
* feat: add support for Vercel sandbox

* format

* switch to deno

* cr

* format

* rename

* format

* remove skip

* feedback

* Apply suggestion from @hntrl

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

* auto bump peer dep

* format

* fix lock file

* add jiti

* add support for initialFiles

* include provider integration tests

* use DENO_DEPLOY_TOKEN

* add changeset

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>
2026-02-04 21:10:28 -08:00
Christian Bromann 07b91219e4 fix(summarization): resolve fraction trigger bug by using model profile for maxInputTokens (#189)
* fix(summarization): resolve fraction trigger bug by using model profile for maxInputTokens

The fraction-based trigger in createSummarizationMiddleware was always
ineffective because maxInputTokens was never passed to the internal
functions that needed it.

fixes #185

* fix type
2026-02-04 17:06:15 -08:00
Christian Bromann d7cc7f4d92 feat(deepagents): support skills in subagents (#187)
* feat(deepagents): support skills in subagents

* better check for runnable

* improve testing

* format
2026-02-04 17:01:52 -08:00
Christian Bromann 2380fc1317 fix(deepagents): grep should perform literal search instead of regex (#186) 2026-02-04 17:01:38 -08:00
Christian Bromann 3b6b2de2bf fix(deepagents): add missing images 2026-02-04 14:42:14 -08:00
Christian Bromann 9ce0db10e4 chore(deepagents): minor Readme tweaks 2026-02-04 14:41:02 -08:00
Youngho Kim 1a902db31f chore: migrate to use SystemMessage and add tests for filesystem middleware (#184)
* refactor: migrate filesystem middleware to use SystemMessage

Refactor `createFilesystemMiddleware` to use `systemMessage.concat()` instead of string concatenation with `systemPrompt`. This aligns with the pattern established in the memory middleware and provides better type safety.

Add comprehensive test coverage for `wrapModelCall` including:
- System prompt injection behavior
- Conditional execute tool registration based on backend support
- Custom system prompt handling

* test: add comprehensive wrapToolCall tests for filesystem middleware

Add test coverage for the wrapToolCall functionality in the filesystem middleware:
- Test pass-through behavior when eviction is disabled
- Test that tools in TOOLS_EXCLUDED_FROM_EVICTION are not evicted regardless of size
- Test that small tool results are not evicted
- Test eviction of large ToolMessage results to filesystem
- Test handling of Command objects with multiple ToolMessages
- Test graceful error handling when backend write fails during eviction
2026-02-04 11:04:26 -08:00
github-actions[bot] 72c3b18d09 chore: version packages (#182)
* 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>
deepagents@1.6.3
2026-02-04 03:14:33 +00:00
Hunter Lovell 063436e0a0 feat: set default recursionLimit to 10k (#183)
* feat: set default recursionLimit to 10k

* chore: format

* chore: fixup bad test
2026-02-03 19:11:23 -08:00
Youngho Kim 9f77da4723 refactor: migrate memory middleware to use SystemMessage (#178)
* refactor(deepagents): migrate memory middleware to use SystemMessage

Update memory middleware to use SystemMessage class instead of string-based systemPrompt. This change aligns the middleware with the updated request interface and provides better type safety.

- Replace systemPrompt string with SystemMessage object in memory.ts
- Use SystemMessage.concat() method for combining memory section with existing system message
- Update all test cases to use SystemMessage constructor and .text property for assertions

* add changeset

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
2026-02-03 16:18:50 -08:00
Maahir Sachdev 3cc53264db refactor: Add shared filesValue state primitive (#181)
* Add shared filesValue

* lint
2026-02-03 16:18:26 -08:00
dependabot[bot] a8cefe424a build(deps-dev): bump the minor-deps-updates-main group with 2 updates (#177)
Bumps the minor-deps-updates-main group with 2 updates: [globals](https://github.com/sindresorhus/globals) and [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `globals` from 17.2.0 to 17.3.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.2.0...v17.3.0)

Updates `@types/node` from 25.1.0 to 25.2.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: globals
  dependency-version: 17.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: "@types/node"
  dependency-version: 25.2.0
  dependency-type: direct:development
  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-03 07:48:07 -08:00
dependabot[bot] a6fd9d1acd build(deps): bump the patch-deps-updates-main group with 5 updates (#176)
Bumps the patch-deps-updates-main group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) | `1.3.11` | `1.3.13` |
| [@langchain/core](https://github.com/langchain-ai/langchainjs) | `1.1.16` | `1.1.18` |
| [@langchain/langgraph](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core) | `1.1.2` | `1.1.3` |
| [langchain](https://github.com/langchain-ai/langchainjs) | `1.2.12` | `1.2.16` |
| [@langchain/openai](https://github.com/langchain-ai/langchainjs) | `1.2.3` | `1.2.4` |


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

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

Updates `@langchain/langgraph` from 1.1.2 to 1.1.3
- [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.1.3/libs/langgraph-core)

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

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

---
updated-dependencies:
- dependency-name: "@langchain/anthropic"
  dependency-version: 1.3.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/core"
  dependency-version: 1.1.18
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/langgraph"
  dependency-version: 1.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: langchain
  dependency-version: 1.2.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-deps-updates-main
- dependency-name: "@langchain/openai"
  dependency-version: 1.2.4
  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-02-03 07:47:53 -08:00
dependabot[bot] 6a1c895647 build(deps): bump actions/download-artifact (#175)
Bumps the major-deps-updates group with 1 update: [actions/download-artifact](https://github.com/actions/download-artifact).


Updates `actions/download-artifact` from 4.2.1 to 7.0.0
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4.2.1...v7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: major-deps-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 07:47:41 -08:00
github-actions[bot] 41f1e38f65 chore: version packages (#164)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
deepagents@1.6.2
2026-02-02 22:40:11 -08:00
Christian Bromann 90ade665a3 fix(deepagents): fix type issues (#174)
* fix(deepagents): fix type issues

* fix types

* minor tweak
2026-02-02 22:35:00 -08:00
Christian Bromann 7038d247a8 fix(deepagents): resolve dangling tool_call_id when rejecting parallel tool calls (#173)
* fix(deepagents): resolve dangling tool_call_id when rejecting parallel tool calls

* type improvements

* format
2026-02-02 21:41:32 -08:00
Christian Bromann dff8977d20 fix(deepagents): remove obsolete import 2026-02-02 21:15:52 -08:00
Maahir Sachdev e4f9f8d8c8 fix: missing files in skillsMiddleware schema (#160)
* fix missing files in skillsMiddleware

* Update tests

* Add integration tests + fixes

* Restore skills.test.ts from main

* Update tests to unit from integration

* Update unit tests

* fix test

* changeset
2026-02-02 21:11:51 -08:00
Christian Bromann c674c619cd fix(deepagents): prevent infinite loop when read_file returns large content (#172)
* fix(deepagents): prevent infinite loop when read_file returns large content (#82)

When a tool returned a large result with few but very long lines, the
agent could enter an infinite eviction/read loop. The content would be
evicted to the filesystem, then read_file would return all the content
(since it only had a line limit, not a character limit), which would
again exceed the eviction threshold.

fixes #82

* export FileData from right place

* add changesets
2026-02-02 21:10:56 -08:00
Christian Bromann b3cf8e391d fix(deepagents): add missing changeset 2026-02-02 21:09:25 -08:00
Christian Bromann 52675bd939 fix(deepagents): handle empty oldString in performStringReplacement (#170)
* fix: handle empty oldString in performStringReplacement (#161)

When both file content and oldString are empty, `content.split("")`
returns an empty array, causing `occurrences` to be -1 and returning
an invalid success response.

This change:
- Adds special case handling for empty files: when both content and
  oldString are empty, treat it as "set initial content" and return
  [newString, 0]
- Returns a clear error when oldString is empty but file has content
- Adds comprehensive tests for empty oldString scenarios

This allows users to edit empty files by passing oldString="" with
their desired content, while preventing ambiguous empty replacements
on non-empty files.

fixes #161

* retrigger
2026-02-02 21:08:30 -08:00
Christian Bromann e6d895bdf9 fix(middleware): avoid unnecessary REMOVE_ALL_MESSAGES in PatchToolCallsMiddleware (#169)
* fix(middleware): avoid unnecessary REMOVE_ALL_MESSAGES in PatchToolCallsMiddleware

The middleware was unconditionally triggering REMOVE_ALL_MESSAGES on every
request, even when there were no dangling tool calls to patch. This caused
unnecessary frontend re-renders and UI flickering when using useStream with
fetchStateHistory: true.

Added a needsPatch flag to track whether any dangling tool calls are found,
and only trigger the state rebuild when patching is actually needed.

Fixes #127

* retrigger

* fix test

* add changeset
2026-02-02 21:08:12 -08:00
Maahir Sachdev 0fe09a51de fix: missing files/memoryContents in memory middleware (#159)
* Update memory state schmea

* Update tests

* Update testing

* changeset

* Update libs/deepagents/src/middleware/memory.test.ts

* Update libs/deepagents/src/middleware/memory.test.ts

* Update libs/deepagents/src/middleware/memory.test.ts

* Update libs/deepagents/src/middleware/memory.test.ts

* Update libs/deepagents/src/middleware/memory.test.ts

* Update libs/deepagents/src/middleware/memory.test.ts

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
2026-02-02 20:07:59 -08:00
Youngho Kim 0ef8362f80 test(deepagents): add unit tests for createPatchToolCallsMiddleware (#168) 2026-02-02 10:28:37 -08:00
Christian Bromann 0b65b09864 fix(deepagents): copy LICENSE file into published package 2026-02-01 19:14:00 -08:00
Hunter Lovell 6b912ab57d Merge pull request #154 from langchain-ai/hunter/preview-builds
chore(ci): enable preview builds
2026-01-30 15:18:12 -08:00
dependabot[bot] 9acbdca34d build(deps-dev): bump the minor-deps-updates-main group across 1 directory with 5 updates (#152)
Bumps the minor-deps-updates-main group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [globals](https://github.com/sindresorhus/globals) | `17.0.0` | `17.2.0` |
| [prettier](https://github.com/prettier/prettier) | `3.7.4` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.1` | `8.54.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.10` | `25.1.0` |
| [tsdown](https://github.com/rolldown/tsdown) | `0.19.0` | `0.20.1` |



Updates `globals` from 17.0.0 to 17.2.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.0.0...v17.2.0)

Updates `prettier` from 3.7.4 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.7.4...3.8.1)

Updates `typescript-eslint` from 8.53.1 to 8.54.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.54.0/packages/typescript-eslint)

Updates `@types/node` from 25.0.10 to 25.1.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `tsdown` from 0.19.0 to 0.20.1
- [Release notes](https://github.com/rolldown/tsdown/releases)
- [Commits](https://github.com/rolldown/tsdown/compare/v0.19.0...v0.20.1)

---
updated-dependencies:
- dependency-name: globals
  dependency-version: 17.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: prettier
  dependency-version: 3.8.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: typescript-eslint
  dependency-version: 8.54.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: "@types/node"
  dependency-version: 25.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-deps-updates-main
- dependency-name: tsdown
  dependency-version: 0.20.1
  dependency-type: direct:development
  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-01-30 09:31:08 -08:00
github-actions[bot] fa41f08580 chore: version packages (#151)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
deepagents@1.6.1
2026-01-28 10:55:12 -08:00
Christian Bromann a0f69609b8 chore: add changeset 2026-01-28 10:54:17 -08:00
Christian Bromann 8a92e572ea fix(deepagents): use new StateSchema class (#145)
* fix(deepagents): use new StateSchema class

* format

* fix bundling

* run unit tests also in windows

* revert

* fix windows test issue

* bump lc

* bump lc

* path normalization
2026-01-28 10:52:38 -08:00