* fix(deepagents): update summarization behavior
* actually use deepagent summarization middleware
* Update summarization behavior for deepagents
* make it work
* format
* fix pnpm-lock
* 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
* fix(deepagents): unwrap responseFormat strategy types so structuredResponse is correctly typed
Previously, passing responseFormat to createDeepAgent would leak the
strategy wrapper type (e.g. ToolStrategy<{ city: string }>) into the
agent's structuredResponse property instead of the inner parsed type
({ city: string }). This adds an InferStructuredResponse utility type
that extracts T from ToolStrategy<T> / ProviderStrategy<T>, and resolves
to ResponseFormatUndefined when no responseFormat is provided.
Also adds integration tests covering toolStrategy, providerStrategy,
combined tools + responseFormat, nested schemas, and subagents with
structured output.
* format
* Create stale-planes-breathe.md
* improve tests
* update deps
* add type tests
* fix(skills): use systemMessage.concat() instead of systemPrompt string
* style: fix Prettier formatting in skills.test.ts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(skills): update integration tests to use systemMessage API
The integration tests were using the old systemPrompt string API
but wrapModelCall now uses request.systemMessage.concat(). Updated
tests to pass SystemMessage objects and read from systemMessage.text.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Anton Nakaliuzhnyi <anakaliuzhnyi@gipartners.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* 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
* 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>
* 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
* 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
* 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>
* 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
* 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
* 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>