Commit Graph

241 Commits

Author SHA1 Message Date
github-actions[bot] f127e3d442 chore: version packages (#676)
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@1.11.0

### Minor Changes

- [#671](https://github.com/langchain-ai/deepagentsjs/pull/671)
[`6ae9d1e`](https://github.com/langchain-ai/deepagentsjs/commit/6ae9d1eab92131ea9cfd7bef024cf1ab343641ea)
Thanks [@hntrl](https://github.com/hntrl)! - feat(filesystem): add
allowlist for filesystem middleware tools

- [#669](https://github.com/langchain-ai/deepagentsjs/pull/669)
[`4643148`](https://github.com/langchain-ai/deepagentsjs/commit/4643148e8b64c796d3144210bac3ad1c6f5b2091)
Thanks [@hntrl](https://github.com/hntrl)! - feat(deepagents): add
structured system prompt configuration

- [#673](https://github.com/langchain-ai/deepagentsjs/pull/673)
[`eb18c70`](https://github.com/langchain-ai/deepagentsjs/commit/eb18c70d8d0871bc72aeb8be6581a98506829c6f)
Thanks [@hntrl](https://github.com/hntrl)! - feat(backends): add delete
protocol support

Adds a `DeleteResult` type and optional backend `delete` method,
preserves delete through backend protocol adaptation, and implements
file deletion across the built-in state, store, filesystem, composite,
context hub, sandbox, and node-vfs backends.

### Patch Changes

- [#691](https://github.com/langchain-ai/deepagentsjs/pull/691)
[`39a7049`](https://github.com/langchain-ai/deepagentsjs/commit/39a7049e4dbf99a31223c4e31cf79a2ed5115634)
Thanks [@colifran](https://github.com/colifran)! - fix(deepagents):
backend adapter drops route prefixes

- [#672](https://github.com/langchain-ai/deepagentsjs/pull/672)
[`cc26c41`](https://github.com/langchain-ai/deepagentsjs/commit/cc26c41df2851acacc86a743878b5c847a8f5d59)
Thanks [@hntrl](https://github.com/hntrl)! - fix(deepagents): allow
custom middleware to replace defaults by name
## deepagents-acp@0.1.19

### Patch Changes

- Updated dependencies
[[`39a7049`](https://github.com/langchain-ai/deepagentsjs/commit/39a7049e4dbf99a31223c4e31cf79a2ed5115634),
[`6ae9d1e`](https://github.com/langchain-ai/deepagentsjs/commit/6ae9d1eab92131ea9cfd7bef024cf1ab343641ea),
[`cc26c41`](https://github.com/langchain-ai/deepagentsjs/commit/cc26c41df2851acacc86a743878b5c847a8f5d59),
[`4643148`](https://github.com/langchain-ai/deepagentsjs/commit/4643148e8b64c796d3144210bac3ad1c6f5b2091),
[`eb18c70`](https://github.com/langchain-ai/deepagentsjs/commit/eb18c70d8d0871bc72aeb8be6581a98506829c6f)]:
  - deepagents@1.11.0
## @langchain/node-vfs@0.2.1

### Patch Changes

- [#673](https://github.com/langchain-ai/deepagentsjs/pull/673)
[`eb18c70`](https://github.com/langchain-ai/deepagentsjs/commit/eb18c70d8d0871bc72aeb8be6581a98506829c6f)
Thanks [@hntrl](https://github.com/hntrl)! - feat(backends): add delete
protocol support

Adds a `DeleteResult` type and optional backend `delete` method,
preserves delete through backend protocol adaptation, and implements
file deletion across the built-in state, store, filesystem, composite,
context hub, sandbox, and node-vfs backends.
## @deepagents/evals@0.0.18

### Patch Changes

- Updated dependencies
[[`39a7049`](https://github.com/langchain-ai/deepagentsjs/commit/39a7049e4dbf99a31223c4e31cf79a2ed5115634),
[`6ae9d1e`](https://github.com/langchain-ai/deepagentsjs/commit/6ae9d1eab92131ea9cfd7bef024cf1ab343641ea),
[`cc26c41`](https://github.com/langchain-ai/deepagentsjs/commit/cc26c41df2851acacc86a743878b5c847a8f5d59),
[`4643148`](https://github.com/langchain-ai/deepagentsjs/commit/4643148e8b64c796d3144210bac3ad1c6f5b2091),
[`eb18c70`](https://github.com/langchain-ai/deepagentsjs/commit/eb18c70d8d0871bc72aeb8be6581a98506829c6f)]:
  - deepagents@1.11.0

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-15 21:08:41 -07:00
Colin Francis 39a7049e4d fix(deepagents): backend adapter drops route prefixes (#691)
### Summary

`adaptBackendProtocol` rebuilds the backend into a v2 backend protocol
but drops its `routePrefixes`. Since `resolveBackend` runs every backend
through the adapter, a resolved `CompositeBackend` was no longer
detected as composite. That made the execute tool's guard fail at
invocation and disable the execute tool even when filesystem permissions
were correctly scoped to composite routes.

This PR fixes this by forwarding `routePrefixes` through
`adaptBackendProtocol` instead of dropping them.

### Tests

Added unit tests in backends/utils.test.ts to verify that
`routePrefixes` is forwarded through `adaptBackendProtocol` and
`adaptSandboxProtocol` and not added for non-composite backends.
2026-07-15 20:25:35 -07:00
Hunter Lovell cc26c41df2 fix(deepagents): merge custom middleware by name (#672)
## Summary

Adds middleware override behavior to replace default middleware by
`.name` instead of always being appended.

## Changes

- Add name-keyed middleware merging so custom middleware replaces
matching default middleware in-place and appends novel middleware after
the core stack.
- Apply default-slot middleware overrides consistently when constructing
main-agent and subagent middleware stacks, while preventing parent-only
middleware from propagating unless it matches a subagent default slot.
- Move harness tool exclusion into a private `_ToolExclusionMiddleware`
helper so excluded tools are stripped after tool-injecting middleware
has run.
- Add coverage for main-agent replacement, subagent/default override
propagation, parent-only middleware isolation, profile exclusions,
tool-exclusion ordering, and merge precedence.
2026-07-14 19:08:52 -07:00
Hunter Lovell f09bc61d7a feat(deepagents): implement delete across backends (#680)
## Summary

Implements the optional backend `delete` protocol across the built-in
backend implementations now that the delete protocol surface is
available. This keeps delete behavior backend-local and does not expose
a new filesystem tool to agents.

## Changes

### deepagents

- Implements `delete(filePath)` for filesystem, store, composite,
context hub, and sandbox backends.
- Uses backend-specific safety semantics: filesystem deletion goes
through existing path resolution and only unlinks files, store deletion
treats paths as exact keys, context hub deletion commits null entries,
and sandbox deletion uses shell-quoted `rm -f`.
- Adds tests covering successful deletion, missing paths, directory
rejection where applicable, composite route path restoration, store
wildcard literal behavior, and context hub cache updates/failure
handling.

### @langchain/node-vfs

- Implements `delete(filePath)` for the VFS backend.
- Adds tests for file deletion, missing paths, directory rejection, and
preserving non-target files.
2026-07-14 17:31:16 -07:00
Hunter Lovell 6ae9d1eab9 feat(deepagents): add filesystem tool allowlist (#671)
## Summary

Adds a `tools` allowlist option to `createFilesystemMiddleware` so
callers can restrict which built-in filesystem tools are exposed to the
model. The middleware now builds the filesystem system prompt from the
tools that are actually visible on the request, avoiding instructions
for tools that were filtered by the allowlist or backend capability
checks.

## Changes

- Adds a public `FsToolName` type and `tools` option to
`FilesystemMiddlewareOptions`.
- Filters filesystem middleware tools at construction time when an
explicit allowlist is provided, while preserving existing `execute`
backend capability filtering.
- Requires `read_file` in explicit allowlists because it is needed for
filesystem workflows and large-result recovery.
- Generates the filesystem tool prompt dynamically from visible
filesystem tools, and only appends execute-specific instructions when
`execute` is actually available.
- Adds unit and integration coverage for allowlist behavior, prompt
filtering, unsupported `execute`, and user-provided non-filesystem
tools.
2026-07-14 13:42:55 -07:00
Hunter Lovell eb18c70d8d feat(deepagents): add delete protocol support (#673)
## Summary

Adds protocol-level delete support for deepagents backends.

## Changes

### deepagents

- Adds `DeleteResult` to the backend protocol exports.
- Adds optional `delete(filePath)` support to v1 and v2 backend
protocols.
- Preserves optional delete implementations when adapting backends to
the v2 protocol.
- Implements `StateBackend.delete()` for zero-argument StateBackend
instances by sending `{ [filePath]: null }` through `__pregel_send`.
- Adds a changeset for the new backend protocol capability.
2026-07-14 10:20:08 -07:00
Hunter Lovell 4643148e8b feat(deepagents): add structured system prompt configuration (#669)
## Summary

Ports the system prompt configuration in langchain-ai/deepagents#4437
2026-07-13 16:24:56 -07:00
github-actions[bot] 4507acd92e chore: version packages (#670)
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.18

### Patch Changes

- Updated dependencies
[[`7c8a770`](https://github.com/langchain-ai/deepagentsjs/commit/7c8a770fac90fd50dfe08af67a0ce073a33e4ef7)]:
  - deepagents@1.10.8
## deepagents@1.10.8

### Patch Changes

- [#668](https://github.com/langchain-ai/deepagentsjs/pull/668)
[`7c8a770`](https://github.com/langchain-ai/deepagentsjs/commit/7c8a770fac90fd50dfe08af67a0ce073a33e4ef7)
Thanks [@colifran](https://github.com/colifran)! - fix(deepagents):
fast-glob follows directory symlink cycles leading to ELOOP crashes
## @deepagents/evals@0.0.17

### Patch Changes

- Updated dependencies
[[`7c8a770`](https://github.com/langchain-ai/deepagentsjs/commit/7c8a770fac90fd50dfe08af67a0ce073a33e4ef7)]:
  - deepagents@1.10.8

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-13 12:50:19 -07:00
Colin Francis 7c8a770fac fix(deepagents): fast-glob follows directory symlink cycles leading to ELOOP crashes (#668)
### Summary

`fast-glob` follows symbolic links by default so the `glob`/`grep` tools
in `FilesystemBackend` and `LocalShellBackend` walked directory symlink
cycles recursively causing `ELOOP` crashes. and aborted the run over a
target repo.

This PR fixes by adding`followSymbolicLinks: false` to all four
`fast-glob` calls. Bonus: this keeps traversal inside the search root.

### Tests
Unit tests in `filesystem.test.ts` and `local-shell.test.ts` verifying
that a `sub/sub -> .` cycle now traverses cleanly without traversing
symlinks.

This is an upstream fix for:
https://github.com/langchain-ai/openwiki/issues/72
2026-07-13 12:41:34 -07:00
langsmith-fleet[bot] 2d1b39bd29 fix: Deno sandbox file path shell injection (#664)
## Summary

Fixes the Deno sandbox file-operation shell injection findings from
Corridor category 2:

- `67480dc4-15f8-48fc-925d-4b0e144832c1` — `DenoSandbox.uploadFiles()`
interpolated `parentDir` into `mkdir -p "${parentDir}"` through
`/bin/bash -c`
- `7d707e16-90a6-4231-974f-d2831971687b` — `DenoSandbox.downloadFiles()`
interpolated `path` into `cat "${path}"` through `/bin/bash -c`

## Changes

- Replace shell-interpreted `mkdir -p` with direct argv execution:
`/bin/mkdir`, `args: ["-p", parentDir]`
- Replace shell-interpreted `cat` with direct argv execution:
`/bin/cat`, `args: [path]`
- Add regression tests covering paths containing `$()` to ensure
file-operation paths are passed as literal argv values and not routed
through `/bin/bash`

## Security notes

This removes command substitution / shell metacharacter interpretation
from Deno `uploadFiles()` and `downloadFiles()` paths. It does not
attempt to solve broader path containment findings in the filesystem
category; those should remain a separate hardening patch.

## Test plan

- `git diff --check` 
- Verified the vulnerable Deno patterns are removed from
`libs/providers/deno/src` 
- `pnpm --dir /tmp/deepagentsjs --filter "@langchain/deno" test:unit` ⚠️
could not run locally because this sandbox has no `node_modules`;
dependency install was blocked by Socket Firewall failing to fetch its
GitHub release binary with HTTP 502. The repo also requires Node >=22.13
for the pinned pnpm, so I used a temporary Node 22.13.1 binary for the
attempted test run.

CI should run the full Deno provider unit tests.

Co-authored-by: Langster <john@langchain.dev>
2026-07-09 04:07:26 +00:00
corridor-security[bot] 1b8528ba92 fix: Permission gate (requestToolPermission) is defined but never called — all tool executions bypass permission checks (#663)
## Summary
This PR was generated by [Corridor](https://corridor.dev) to fix:

- Permission gate (requestToolPermission) is defined but never called —
all tool executions bypass permission checks

## Changes
To close the missing authorization gap (CWE-862), the fix wires a call
to requestToolPermission() into the tool execution path inside
handleAIMessage(), awaiting a user decision before moving from the
in_progress state. Depending on the decision, the tool call is rejected
(marked failed, updated to the client, removed from active calls, and
the prompt/stream aborted), cancelled (similar cleanup and abort), or
allowed to proceed as before; the existing allow_always/reject_always
caching is preserved via the session’s permissionDecisions. The change
is narrowly scoped to the for loop in handleAIMessage() and does not
alter interfaces, semantics, or other code paths.

---
Generated by Corridor

Co-authored-by: corridor-security[bot] <203152403+corridor-security[bot]@users.noreply.github.com>
2026-07-09 03:07:21 +00:00
github-actions[bot] 3eab2cad6f chore: version packages (#660)
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.17

### Patch Changes

- Updated dependencies
[[`8efde93`](https://github.com/langchain-ai/deepagentsjs/commit/8efde93792dfc324e70b441eacbb810532f347c4)]:
  - deepagents@1.10.7
## deepagents@1.10.7

### Patch Changes

- [#659](https://github.com/langchain-ai/deepagentsjs/pull/659)
[`8efde93`](https://github.com/langchain-ai/deepagentsjs/commit/8efde93792dfc324e70b441eacbb810532f347c4)
Thanks [@Kowshik4593](https://github.com/Kowshik4593)! - Fix: Normalize
`path` to `file_path` in filesystem tools (`read_file`, `write_file`,
and `edit_file`) and align the prompt documentation examples to prevent
validation schema failures on weaker/custom models.
## @deepagents/evals@0.0.16

### Patch Changes

- Updated dependencies
[[`8efde93`](https://github.com/langchain-ai/deepagentsjs/commit/8efde93792dfc324e70b441eacbb810532f347c4)]:
  - deepagents@1.10.7

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Colin Francis <colin.francis@langchain.dev>
2026-07-08 14:04:15 -07:00
Kowshik Padala 8efde93792 feat(deepagents): implement filesystem state management middleware with atomic update support and testing (#659)
## Problem
Addresses #658.

When using weaker or custom LLMs (e.g., smaller open-source models) in
`deepagents` and consumers like `openwiki`, the agent immediately
crashes with a schema validation error on the first filesystem tool
call:


This occurs because:
1. `ls` defines its directory argument as `path`, but `read_file`,
`write_file`, and `edit_file` expect `file_path`. Models often default
to `path` across all filesystem tools.
2. The description prompt examples in `fs.ts` and `skills.ts` show
`read_file(path, ...)`, instructing models to use the wrong parameter
name.

## Proposed Changes
This PR solves both prompt inconsistencies and schema validation
failures with a fully backward-compatible input normalization helper:

1. **Prompt Alignment**: Fixed references in `fs.ts` and `skills.ts` to
instruct the model to use `file_path` (aligned with the prompt fixes in
#644).
2. **Schema Input Normalization**: Added a `normalizeFilePathInput`
preprocessor helper to the `read_file`, `write_file`, and `edit_file`
Zod schemas using `z.preprocess`. This dynamically maps the `path` key
to `file_path` if the model still passes `path`.

## Verification & Tests
- Added unit tests in `fs.test.ts` to assert that:
- `path` parameter normalization maps correctly to `file_path` for
`read_file`, `write_file`, and `edit_file`.
  - All instruction examples contain only valid schema fields.
- Verified that `zod-to-json-schema` unwraps the `z.preprocess` layer
perfectly, preserving the original schema descriptions and definitions
sent to the LLM.
- Ran all filesystem tests successfully (`npx vitest run
src/middleware/fs.test.ts` passes).
2026-07-08 13:20:36 -07:00
github-actions[bot] ff8cc5c4b4 chore: version packages (#607)
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
## @langchain/quickjs@0.6.0

### Minor Changes

- [#606](https://github.com/langchain-ai/deepagentsjs/pull/606)
[`3c8f8b2`](https://github.com/langchain-ai/deepagentsjs/commit/3c8f8b2ea6f0204353c63bf49c3fdc6655bf1069)
Thanks [@colifran](https://github.com/colifran)! - chore(quickjs):
disallow task as a configurable ptc tool
## deepagents-acp@0.1.16

### Patch Changes

- Updated dependencies
[[`d7ecab2`](https://github.com/langchain-ai/deepagentsjs/commit/d7ecab2d9f9d41321a043eed6edc3366a1381a67),
[`1a2b2df`](https://github.com/langchain-ai/deepagentsjs/commit/1a2b2df5528f0f61870b054fff8291355f6a2a0b),
[`42f34b6`](https://github.com/langchain-ai/deepagentsjs/commit/42f34b65ededf4a1fbf3cd4bbff486ddfeb320e9),
[`0ae10d7`](https://github.com/langchain-ai/deepagentsjs/commit/0ae10d7e26c84203a5273939c9ad7a9c8c8661c6)]:
  - deepagents@1.10.6
## deepagents@1.10.6

### Patch Changes

- [#608](https://github.com/langchain-ai/deepagentsjs/pull/608)
[`d7ecab2`](https://github.com/langchain-ai/deepagentsjs/commit/d7ecab2d9f9d41321a043eed6edc3366a1381a67)
Thanks [@aolsenjazz](https://github.com/aolsenjazz)! - fix(deepagents):
forward subagent results as text

Fixed a 400 `invalid_request_error` that occurred when a subagent used
an Anthropic server-side tool (web search, web fetch, or code
execution): the subagent's `server_tool_use`/`*_tool_result` blocks were
forwarded to the parent agent as `tool_result` content, which the API
rejects. Subagent results are now passed back to the parent as their
text content (matching the Python implementation), which resolves the
error and also handles a trailing empty `end_turn` message.

- [#656](https://github.com/langchain-ai/deepagentsjs/pull/656)
[`1a2b2df`](https://github.com/langchain-ai/deepagentsjs/commit/1a2b2df5528f0f61870b054fff8291355f6a2a0b)
Thanks [@colifran](https://github.com/colifran)! - fix(deepagents):
default unknown file extensions to text/plain

- [#611](https://github.com/langchain-ai/deepagentsjs/pull/611)
[`42f34b6`](https://github.com/langchain-ai/deepagentsjs/commit/42f34b65ededf4a1fbf3cd4bbff486ddfeb320e9)
Thanks [@aolsenjazz](https://github.com/aolsenjazz)! - feat(deepagents):
add bedrockPromptCachingMiddleware to default stack

Add bedrockPromptCachingMiddleware to default middleware stack. This
automatically opts-in to Bedrock prompt caching for Nova and Anthropic
models

- [#613](https://github.com/langchain-ai/deepagentsjs/pull/613)
[`0ae10d7`](https://github.com/langchain-ai/deepagentsjs/commit/0ae10d7e26c84203a5273939c9ad7a9c8c8661c6)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(deepagents): declare LangChain runtime packages as peer dependencies

Move `@langchain/core`, `@langchain/langgraph`,
`@langchain/langgraph-sdk`, and
`langchain` from `dependencies` to `peerDependencies`, and also declare
`@langchain/langgraph-checkpoint` as a peer (its
`BaseCheckpointSaver`/`BaseStore`
types are part of the public API), so they resolve to a single shared
instance in
  the consumer's tree. Previously they were bundled as regular
dependencies, which let a consumer end up with two copies of
`@langchain/core`
(e.g. `1.2.0` vs `1.2.1`). Because these packages ship classes with
private/
protected fields, the duplicate copies are treated as nominally distinct
types,
producing errors like passing a `ChatOpenAI` model to `createDeepAgent`
or a
compiled graph to the local protocol helpers. As peers, the app controls
the
version and bumping `@langchain/core` no longer requires a `deepagents`
release.
## @langchain/daytona@0.2.1

### Patch Changes

- [#614](https://github.com/langchain-ai/deepagentsjs/pull/614)
[`5b462f2`](https://github.com/langchain-ai/deepagentsjs/commit/5b462f2ab2400fba52906e8f1485a500ec5b6e17)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
Replace deprecated `@daytonaio/sdk` dependency with `@daytona/sdk`.
## @langchain/modal@0.1.5

### Patch Changes

- [#657](https://github.com/langchain-ai/deepagentsjs/pull/657)
[`5f93c11`](https://github.com/langchain-ai/deepagentsjs/commit/5f93c114759399002a3981a93e3df13981514b1d)
Thanks [@colifran](https://github.com/colifran)! - fix(modal): modal low
level file handle api `sandbox.open` has been removed
## @deepagents/evals@0.0.15

### Patch Changes

- Updated dependencies
[[`d7ecab2`](https://github.com/langchain-ai/deepagentsjs/commit/d7ecab2d9f9d41321a043eed6edc3366a1381a67),
[`1a2b2df`](https://github.com/langchain-ai/deepagentsjs/commit/1a2b2df5528f0f61870b054fff8291355f6a2a0b),
[`42f34b6`](https://github.com/langchain-ai/deepagentsjs/commit/42f34b65ededf4a1fbf3cd4bbff486ddfeb320e9),
[`0ae10d7`](https://github.com/langchain-ai/deepagentsjs/commit/0ae10d7e26c84203a5273939c9ad7a9c8c8661c6)]:
  - deepagents@1.10.6

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Colin Francis <colin.francis@langchain.dev>
2026-07-08 09:16:25 -07:00
Colin Francis 1a2b2df552 fix(deepagents): default unknown file extensions to text/plain (#656)
### Summary

`read_file` couldn't read many common text files and with Anthropic it
crashes the whole run. `getMimeType()` mapped any unrecognized extension
to `application/octet-stream`, which `isTextMimeType()` treats as
binary, so the file got base64-encoded into a document block.

This defaults unknown extensions to `text/plain` instead. Known binaries
(images, audio, video, PDF/PPT) stay explicitly mapped, so image and PDF
handling is unchanged. Files like `.properties`, `.scss`, `.tf`,
`.lock`, and extension-less files like `Dockerfile` now read as text.

  ### Tests
  
Flipped the unknown-extension unit test to expect `text/plain`.
2026-07-08 09:04:32 -07:00
Colin Francis 5f93c11475 fix(modal): modal sandboxes fail to upload files (#657)
### Summary

Modal v0.8.0 released the following breaking change:
```
Breaking: Removed the deprecated low-level file-handle API: Sandbox.Open / SandboxFile (Go), and sandbox.open / SandboxFile (JS). Use the Sandbox Filesystem API instead: sandbox.Filesystem() (Go) / sandbox.filesystem (JS).
```
Ref:
https://github.com/modal-labs/modal-client/blob/main/CHANGELOG_GO_JS.md

This PR updates our implementation to use the sandbox filesystem api

### Tests

Updated `sandbox.test.ts` mocks to model `sandbox.filesystem`
2026-07-08 08:52:34 -07:00
dependabot[bot] ff7d82a791 build(deps): bump the minor-deps-updates-main group with 8 updates (#640)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps the minor-deps-updates-main group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [globals](https://github.com/sindresorhus/globals) | `17.6.0` |
`17.7.0` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) |
`0.53.0` | `0.57.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) |
`1.70.0` | `1.72.0` |
| [@daytona/sdk](https://github.com/daytona/clients) | `0.184.0` |
`0.192.0` |
| [modal](https://github.com/modal-labs/modal-client) | `0.7.6` |
`0.8.2` |
| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) |
`8.21.0` | `8.22.0` |
|
[lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)
| `1.21.0` | `1.23.0` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) |
`8.0.16` | `8.1.2` |

Updates `globals` from 17.6.0 to 17.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sindresorhus/globals/releases">globals's
releases</a>.</em></p>
<blockquote>
<h2>v17.7.0</h2>
<ul>
<li>Update globals (2026-06-22) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/345">#345</a>)
33b75f9</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0">https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sindresorhus/globals/commit/a19670cc86c1218e915657c55ea02ba3e7623834"><code>a19670c</code></a>
17.7.0</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/9611620bad0ea45531ae0261b986ce694374e42c"><code>9611620</code></a>
Update actions (<a
href="https://redirect.github.com/sindresorhus/globals/issues/346">#346</a>)</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/33b75f9ddeb6f9ddd81251b043667eb8104a8d15"><code>33b75f9</code></a>
Update globals (2026-06-22) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/345">#345</a>)</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/887dd529bde24486b7f9e31d1b2c515df2b7cf5c"><code>887dd52</code></a>
Fix build script (<a
href="https://redirect.github.com/sindresorhus/globals/issues/344">#344</a>)</li>
<li>See full diff in <a
href="https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxfmt` from 0.53.0 to 0.57.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/5306f24d9e82ae36ad9c3c964f33075bc589c799"><code>5306f24</code></a>
release(apps): oxlint v1.72.0 &amp;&amp; oxfmt v0.57.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/23935">#23935</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/c4be770f24adc4026efa96fb82182f743c55e423"><code>c4be770</code></a>
release(apps): oxlint v1.71.0 &amp;&amp; oxfmt v0.56.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/23707">#23707</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/aa79b5be9915068f60bc361febf2e7496b92fc24"><code>aa79b5b</code></a>
release(apps): oxlint v1.70.0 &amp;&amp; oxfmt v0.55.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/23442">#23442</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/9a2788b3ae60c033a969fbba63733748f8c6130a"><code>9a2788b</code></a>
feat(linter/unicorn): implement <code>prefer-export-from</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22935">#22935</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/44ae845fe19d3700128e50e7e61d98c7a85f3f47"><code>44ae845</code></a>
release(apps): oxlint v1.69.0 &amp;&amp; oxfmt v0.54.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/23116">#23116</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/dadafe3e0874b2b75775d265b24d19d7f446e2bf"><code>dadafe3</code></a>
docs(oxlint, oxfmt): mention migrate skills in npm READMEs (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22965">#22965</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/f88961ae2968ae2a12035111d07c72797812d2fd"><code>f88961a</code></a>
docs(oxfmt): annotate each config option with supported languages (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22953">#22953</a>)</li>
<li>See full diff in <a
href="https://github.com/oxc-project/oxc/commits/oxfmt_v0.57.0/npm/oxfmt">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxlint` from 1.70.0 to 1.72.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/releases">oxlint's
releases</a>.</em></p>
<blockquote>
<h2>oxlint v1.27.0 &amp;&amp; oxfmt v0.12.0</h2>
<h1>Oxlint v1.27.0</h1>
<h3>🚀 Features</h3>
<ul>
<li>222a8f0 linter/plugins: Implement
<code>SourceCode#isSpaceBetween</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15498">#15498</a>)
(overlookmotel)</li>
<li>2f9735d linter/plugins: Implement
<code>context.languageOptions</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15486">#15486</a>)
(overlookmotel)</li>
<li>bc731ff linter/plugins: Stub out all <code>Context</code> APIs (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15479">#15479</a>)
(overlookmotel)</li>
<li>5822cb4 linter/plugins: Add <code>extend</code> method to
<code>FILE_CONTEXT</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15477">#15477</a>)
(overlookmotel)</li>
<li>7b1e6f3 apps: Add pure rust binaries and release to github (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15469">#15469</a>)
(Boshen)</li>
<li>2a89b43 linter: Introduce debug assertions after fixes to assert
validity (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15389">#15389</a>)
(camc314)</li>
<li>ad3c45a editor: Add <code>oxc.path.node</code> option (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15040">#15040</a>)
(Sysix)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>6f3cd77 linter/no-var: Incorrect warning for blocks (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15504">#15504</a>)
(Hamir Mahal)</li>
<li>6957fb9 linter/plugins: Do not allow access to
<code>Context#id</code> in <code>createOnce</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15489">#15489</a>)
(overlookmotel)</li>
<li>7409630 linter/plugins: Allow access to <code>cwd</code> in
<code>createOnce</code> in ESLint interop mode (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15488">#15488</a>)
(overlookmotel)</li>
<li>732205e parser: Reject <code>using</code> / <code>await using</code>
in a switch <code>case</code> / <code>default</code> clause (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15225">#15225</a>)
(sapphi-red)</li>
<li>a17ca32 linter/plugins: Replace <code>Context</code> class (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15448">#15448</a>)
(overlookmotel)</li>
<li>ecf2f7b language_server: Fail gracefully when tsgolint executable
not found (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15436">#15436</a>)
(camc314)</li>
<li>3c8d3a7 lang-server: Improve logging in failure case for tsgolint
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15299">#15299</a>)
(camc314)</li>
<li>ef71410 linter: Use jsx if source type is JS in fix debug assertion
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15434">#15434</a>)
(camc314)</li>
<li>e32bbf6 linter/no-var: Handle TypeScript declare keyword in fixer
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15426">#15426</a>)
(camc314)</li>
<li>6565dbe linter/switch-case-braces: Skip comments when searching for
<code>:</code> token (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15425">#15425</a>)
(camc314)</li>
<li>85bd19a linter/prefer-class-fields: Insert value after type
annotation in fixer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15423">#15423</a>)
(camc314)</li>
<li>fde753e linter/plugins: Block access to
<code>context.settings</code> in <code>createOnce</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15394">#15394</a>)
(overlookmotel)</li>
<li>ddd9f9f linter/forward-ref-uses-ref: Dont suggest removing wrapper
in invalid positions (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15388">#15388</a>)
(camc314)</li>
<li>dac2a9c linter/no-template-curly-in-string: Remove fixer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15387">#15387</a>)
(camc314)</li>
<li>989b8e3 linter/no-var: Only fix to <code>const</code> if the var has
an initializer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15385">#15385</a>)
(camc314)</li>
<li>cc403f5 linter/plugins: Return empty object for unimplemented
parserServices (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15364">#15364</a>)
(magic-akari)</li>
</ul>
<h3> Performance</h3>
<ul>
<li>25d577e language_server: Start tools in parallel (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15500">#15500</a>)
(Sysix)</li>
<li>3c57291 linter/plugins: Optimize loops (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15449">#15449</a>)
(overlookmotel)</li>
<li>3166233 linter/plugins: Remove <code>Arc</code>s (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15431">#15431</a>)
(overlookmotel)</li>
<li>9de1322 linter/plugins: Lazily deserialize settings JSON (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15395">#15395</a>)
(overlookmotel)</li>
<li>3049ec2 linter/plugins: Optimize <code>deepFreezeSettings</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15392">#15392</a>)
(overlookmotel)</li>
<li>444ebfd linter/plugins: Use single object for
<code>parserServices</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15378">#15378</a>)
(overlookmotel)</li>
</ul>
<h3>📚 Documentation</h3>
<ul>
<li>97d2104 linter: Update comment in lint.rs about default value for
tsconfig path (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15530">#15530</a>)
(Connor Shea)</li>
<li>2c6bd9e linter: Always refer as &quot;ES2015&quot; instead of
&quot;ES6&quot; (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15411">#15411</a>)
(sapphi-red)</li>
<li>a0c5203 linter/import/named: Update &quot;ES7&quot; comment in
examples (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15410">#15410</a>)
(sapphi-red)</li>
<li>3dc24b5 linter,minifier: Always refer as &quot;ES Modules&quot;
instead of &quot;ES6 Modules&quot; (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15409">#15409</a>)
(sapphi-red)</li>
<li>2ad77fb linter/no-this-before-super: Correct &quot;Why is this
bad?&quot; section (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15408">#15408</a>)
(sapphi-red)</li>
<li>57f0ce1 linter: Add backquotes where appropriate (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15407">#15407</a>)
(sapphi-red)</li>
</ul>
<h1>Oxfmt v0.12.0</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md">oxlint's
changelog</a>.</em></p>
<blockquote>
<h2>[1.72.0] - 2026-06-29</h2>
<h3>🚀 Features</h3>
<ul>
<li>1c8f50c linter: Add schema for
<code>eslint/no-restricted-import</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23642">#23642</a>)
(Sysix)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>742be36 refactor/node/handle-callback-err: Reject invalid regex
config (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23740">#23740</a>)
(camc314)</li>
</ul>
<h2>[1.71.0] - 2026-06-22</h2>
<h3>🚀 Features</h3>
<ul>
<li>0dc2405 linter: Add schema for
<code>eslint/no-restricted-properties</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23619">#23619</a>)
(Sysix)</li>
<li>b638d0e linter: Add schema for <code>node/callback-return</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23615">#23615</a>)
(Sysix)</li>
<li>eb8bedc linter: Add schema for <code>import/extensions</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23557">#23557</a>)
(WaterWhisperer)</li>
<li>46f3625 linter: Implement node/no-sync rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23589">#23589</a>)
(fujitani sora)</li>
<li>b01739a linter: Add schema for
<code>unicorn/numeric-separators-style</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23554">#23554</a>)
(Mikhail Baev)</li>
<li>68afd2a linter/node: Implement <code>no-mixed-requires</code> rule
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23539">#23539</a>)
(fujitani sora)</li>
<li>a421215 linter: Add schema for
<code>eslint/prefer-destructuring</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23410">#23410</a>)
(WaterWhisperer)</li>
<li>84438be linter/jsdoc: Added missing options to
<code>require-param-description</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23416">#23416</a>)
(kapobajza)</li>
<li>51910df linter/jsdoc: Add missing options to
<code>require-param-type</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23418">#23418</a>)
(kapobajza)</li>
<li>e90925f linter/unicorn: Implement prefer-number-coercion rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23497">#23497</a>)
(Shekhu☺️)</li>
<li>dd1c866 linter/vue: Implement no-async-in-computed-properties rule
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23493">#23493</a>)
(bab)</li>
<li>b02444e linter: Add schema for <code>react/jsx-no-script-url</code>
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23475">#23475</a>)
(WaterWhisperer)</li>
<li>a8dce46 linter/unicorn: Implement <code>max-nested-calls</code> rule
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23461">#23461</a>)
(arieleli01212)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>a303c23 linter/jsx-a11y: Align <code>anchor-is-valid</code> config
with upstream (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23446">#23446</a>)
(camc314)</li>
</ul>
<h3>📚 Documentation</h3>
<ul>
<li>b50bf4d linter: Remove manually written options doc for
<code>eslint/arrow-body-style</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23490">#23490</a>)
(Mikhail Baev)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/5306f24d9e82ae36ad9c3c964f33075bc589c799"><code>5306f24</code></a>
release(apps): oxlint v1.72.0 &amp;&amp; oxfmt v0.57.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23935">#23935</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/742be3616fc8df27053b09bdf9ff166e16761838"><code>742be36</code></a>
fix(refactor/node/handle-callback-err): reject invalid regex config (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23740">#23740</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/1c8f50c67ff636b9d8193d3d7be1511a7960f25d"><code>1c8f50c</code></a>
feat(linter): add schema for <code>eslint/no-restricted-import</code>
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23642">#23642</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/c4be770f24adc4026efa96fb82182f743c55e423"><code>c4be770</code></a>
release(apps): oxlint v1.71.0 &amp;&amp; oxfmt v0.56.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23707">#23707</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/0dc24054119b22247c6a7b9bdb20cc6e589f267a"><code>0dc2405</code></a>
feat(linter): add schema for
<code>eslint/no-restricted-properties</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23619">#23619</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/b638d0ee1df63487e7c04e031b4b71ab10d592ce"><code>b638d0e</code></a>
feat(linter): add schema for <code>node/callback-return</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23615">#23615</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/6d355ab8b3644505c4491da5fc4ec88695de50f7"><code>6d355ab</code></a>
refactor(linter): remove <code>number_as_object_schema</code> helper (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23614">#23614</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/eb8bedc2fba9cead8632a75bb7936205fae7dcf0"><code>eb8bedc</code></a>
feat(linter): add schema for <code>import/extensions</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23557">#23557</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/46f362530da1c2c5e868613e339999314b9f3a72"><code>46f3625</code></a>
feat(linter): implement node/no-sync rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23589">#23589</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/953c7b3f1c9e2c80ee1b782f1540d277cc22ed99"><code>953c7b3</code></a>
refactor(linter): make <code>unicorn/numeric-separators-style</code>
options <code>u32</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/23558">#23558</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/oxc-project/oxc/commits/oxlint_v1.72.0/npm/oxlint">compare
view</a></li>
</ul>
</details>
<br />

Updates `@daytona/sdk` from 0.184.0 to 0.192.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/daytona/clients/releases">@​daytona/sdk's
releases</a>.</em></p>
<blockquote>
<h2>v0.192.0</h2>
<h2>0.192.0 (2026-06-26)</h2>
<h3>🚀 Features</h3>
<ul>
<li>secrets (<a
href="https://redirect.github.com/daytona/clients/pull/10">#10</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>release:</strong> scope nx release to packages with
package.json (<a
href="https://github.com/daytona/clients/commit/8571c8693">8571c8693</a>)</li>
</ul>
<h3>Refactor</h3>
<ul>
<li>flatten repo structure, relicense to Apache-2.0, prep Go SDK release
pipeline (<a
href="https://redirect.github.com/daytona/clients/pull/6">#6</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>align replace directives with sdk-go v0.191.0 requires (<a
href="https://redirect.github.com/daytona/clients/pull/11">#11</a>)</li>
<li>fix release action (CLI build secrets, nx manifest, sync_gosum PR)
(<a
href="https://redirect.github.com/daytona/clients/pull/12">#12</a>)</li>
<li>clarify Apache-2.0/AGPL-3.0 split and add REUSE LICENSES/ (<a
href="https://github.com/daytona/clients/commit/7273f5be4">7273f5be4</a>)</li>
<li>fall back to disk version for release + make Go tagging idempotent
(<a
href="https://redirect.github.com/daytona/clients/pull/16">#16</a>)</li>
<li>changelog automaticFromRef for releases without a reachable base tag
(<a
href="https://redirect.github.com/daytona/clients/pull/17">#17</a>)</li>
<li><strong>cli:</strong> restore CLI AGPL-3.0 headers, LICENSE, and
checker (<a
href="https://redirect.github.com/daytona/clients/pull/14">#14</a>)</li>
<li><strong>sdk-go:</strong> bump to v0.191.0 (<a
href="https://redirect.github.com/daytona/clients/pull/9">#9</a>)</li>
<li><strong>sdk-go:</strong> bump to v0.192.0 (<a
href="https://redirect.github.com/daytona/clients/pull/15">#15</a>)</li>
<li><strong>sdk-go:</strong> migrate module paths from go.daytona.io to
github.com/daytona/clients (<a
href="https://redirect.github.com/daytona/clients/pull/18">#18</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>MDzaja <a
href="https://github.com/MDzaja"><code>@​MDzaja</code></a></li>
<li>Mirko Džaja <a
href="https://github.com/MDzaja"><code>@​MDzaja</code></a></li>
<li>Toma Puljak <a
href="https://github.com/Tpuljak"><code>@​Tpuljak</code></a></li>
</ul>
<h2>v0.191.0</h2>
<h2>0.191.0 (2026-06-25)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>release:</strong> scope nx release to packages with
package.json (<a
href="https://github.com/daytona/clients/commit/8571c8693">8571c8693</a>)</li>
</ul>
<h3>Refactor</h3>
<ul>
<li>flatten repo structure, relicense to Apache-2.0, prep Go SDK release
pipeline (<a
href="https://redirect.github.com/daytona/clients/pull/6">#6</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>MDzaja <a
href="https://github.com/MDzaja"><code>@​MDzaja</code></a></li>
<li>Mirko Džaja <a
href="https://github.com/MDzaja"><code>@​MDzaja</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/daytona/clients/commits/v0.192.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `modal` from 0.7.6 to 0.8.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/modal-labs/modal-client/blob/main/CHANGELOG_GO_JS.md">modal's
changelog</a>.</em></p>
<blockquote>
<h2>js/v0.8.2, go/v0.8.2</h2>
<ul>
<li>Added <code>Sandbox.updateNetworkPolicy</code> (JS) and
<code>Sandbox.UpdateNetworkPolicy</code> (Go) to update the outbound
network policy of a running Sandbox. Both
<code>outboundCidrAllowlist</code> and
<code>outboundDomainAllowlist</code> must be provided.</li>
</ul>
<h2>js/v0.8.1, go/v0.8.1</h2>
<ul>
<li>(Go, JS) <code>Sandbox.CreateConnectToken</code> (Go) /
<code>Sandbox.createConnectToken</code> (JS) now accept an optional
<code>Port</code> / <code>port</code> parameter on their params struct,
controlling which container port requests are routed to when using the
token. Defaults to 8080.</li>
<li>(Go) Fixed a bug in <code>Function.Spawn</code> such that results
are now accessible via <code>FunctionCall.Get</code> for up to 7 days
after completion.</li>
</ul>
<h2>js/v0.8.0, go/v0.8.0</h2>
<p>This release primarily contains a number of breaking changes as we
continue working towards 1.0 in the JS and Go SDKs.</p>
<ul>
<li>Added support for named Images, akin to a Modal-native Image
registry, decoupling Image builds from App deployment or Sandbox
creation:
<ul>
<li>(Go) <code>Image.Publish</code> and <code>Image.FromName</code></li>
<li>(JS) <code>Image.publish</code> and <code>Image.fromName</code></li>
</ul>
</li>
<li>Added support for restricting the <em>domains</em> that processes
inside of a Sandbox can connect to:
<ul>
<li>(Go) <code>OutboundDomainAllowlist</code> in
<code>SandboxCreateParams</code></li>
<li>(JS) <code>outboundDomainAllowlist</code> in
<code>Sandbox.create</code></li>
</ul>
</li>
<li>Added support for dynamic configuration of Functions:
<ul>
<li>(Go) <code>Function.WithOptions</code>,
<code>Function.WithConcurrency</code>,
<code>Function.WithBatching</code>, <code>Function.Instance</code></li>
<li>(JS) <code>Function_.withOptions</code>,
<code>Function_.withConcurrency</code>,
<code>Function_.withBatching</code>,
<code>Function_.instance</code></li>
</ul>
</li>
<li>Improved reliability when uploading or downloading large data
payloads for Function calls.</li>
<li>Fixed a bug where adding Dockerfile commands to an Image loaded with
<code>Image.FromID</code> (Go) / <code>Image.fromId</code> (JS) could
fail to use the resolved Image as the base.</li>
<li><code>Sandbox.exec</code> (JS) / <code>Sandbox.Exec</code> (Go) now
reject a relative <code>Workdir</code> client-side with
<code>InvalidError</code>. In JS, an empty-string <code>workdir</code>
is also rejected (pass <code>undefined</code> to use the image
default).</li>
<li>(Go) <code>Sandbox.Create</code> and <code>Sandbox.Exec</code> now
return an <code>InvalidError</code> if any <code>Secrets</code> entry is
nil.</li>
<li><strong>Breaking:</strong> The Go and JS SDKs now read the <a
href="https://modal.com/docs/guide/images#image-builder-updates">Image
Builder Version</a> from your <a
href="https://modal.com/settings/image-config">Modal workspace
settings</a>, like the Python SDK. Previously, the Go and JS SDKs were
hardcoded to use version <code>2024.10</code>. If your workspace
configuration uses a different version, your Images will rebuild once
(then be cached as usual), so beware that the first run after upgrading
may take longer than usual. Note that version <code>2025.06</code> has a
number of improvements that are specifically oriented towards Sandbox
workflows. Accordingly, the fixed
<code>ModalClient.imageBuilderVersion</code> (JS) attribute has been
removed in favor of
<code>ModalClient.getImageBuilderVersion</code>.</li>
<li><strong>Breaking:</strong> <code>Sandbox.SnapshotFilesystem</code>
(Go) / <code>Sandbox.snapshotFilesystem</code> (JS) no longer take a
positional <code>timeout</code> / <code>timeoutMs</code> argument. The
timeout now lives on the params structs as <code>Timeout
time.Duration</code> (Go) / <code>timeoutMs?: number</code> (JS),
bringing the methods to parity with
<code>Sandbox.SnapshotDirectory</code>. Migrate
<code>sb.SnapshotFilesystem(ctx, 30*time.Second, params)</code> to
<code>sb.SnapshotFilesystem(ctx,
&amp;SandboxSnapshotFilesystemParams{Timeout: 30*time.Second,
...})</code>, and <code>sb.snapshotFilesystem(30000, params)</code> to
<code>sb.snapshotFilesystem({ timeoutMs: 30000, ...params
})</code>.</li>
<li><strong>Breaking:</strong> <code>Sandbox.SnapshotFilesystem</code>
(Go) / <code>Sandbox.snapshotFilesystem</code> (JS) and
<code>Sandbox.SnapshotDirectory</code> (Go) /
<code>Sandbox.snapshotDirectory</code> (JS) now accept an explicit
<code>TTL</code> (Go, a <code>time.Duration</code>) / <code>ttlMs</code>
(JS, in milliseconds) field on their params struct, controlling how long
the resulting Image is retained. Both methods default to 30 days. This
is a change of default for <code>snapshotFilesystem</code> which
previously kept Images indefinitely. Pass <code>TTL:
modal.NoExpiryTTL</code> (Go) or <code>ttlMs: null</code> (JS) to opt
out of expiry.</li>
<li><strong>Breaking:</strong> <code>Sandbox.SnapshotDirectory</code>
(Go) / <code>Sandbox.snapshotDirectory</code> (JS) now also have a
<code>Timeout</code> (Go) / <code>timeoutMs</code> (JS) field on their
params structs with a default of 55s, which brings them to parity with
filesystem snapshots. If the snapshot does not return within that
window, a <code>TimeoutError</code> is raised. The timeout can be set
arbitrarily high to preserve the old behavior of not timing out.</li>
<li><strong>Breaking:</strong> (Go) <code>Sandbox.Filesystem</code> is
now a field rather than a method. Migrate
<code>sb.Filesystem().ReadText(...)</code> to
<code>sb.Filesystem.ReadText(...)</code>.</li>
<li><strong>Breaking:</strong> <code>Sandbox.FromID</code> (Go) /
<code>Sandbox.fromId</code> (JS) no longer checks if the sandbox ID
exists. You can run <code>Poll</code> (Go) or <code>poll</code> (JS) to
get the status of your sandbox.</li>
<li><strong>Breaking:</strong> Removed the deprecated low-level
file-handle API: <code>Sandbox.Open</code> / <code>SandboxFile</code>
(Go), and <code>sandbox.open</code> / <code>SandboxFile</code> (JS). Use
the Sandbox Filesystem API instead: <code>sandbox.Filesystem()</code>
(Go) / <code>sandbox.filesystem</code> (JS).</li>
<li><strong>Breaking:</strong> Removed the deprecated
<code>Volume.ReadOnly</code> / <code>Volume.IsReadOnly</code> (Go) and
<code>volume.readOnly</code> / <code>volume.isReadOnly</code> (JS). Use
<code>WithMountOptions(&amp;VolumeMountOptions{ReadOnly: &amp;t})</code>
/ <code>withMountOptions({ readOnly: true })</code> instead.</li>
<li><strong>Breaking:</strong> (JS) Removed the deprecated
<code>cidrAllowlist</code> parameter from <code>sandboxes.create</code>.
Use <code>outboundCidrAllowlist</code> instead.</li>
<li><strong>Breaking:</strong> (JS) Removed the entire deprecated v0.5.0
backwards-compatibility surface: the global
<code>initializeClient()</code> / <code>close()</code> functions and the
<code>ClientOptions</code> type; the deprecated static factories
<code>App.lookup</code>, <code>Function_.lookup</code>,
<code>Cls.lookup</code>, <code>Queue.lookup</code> /
<code>Queue.ephemeral</code> / <code>Queue.delete</code>,
<code>Volume.fromName</code> / <code>Volume.ephemeral</code>,
<code>Secret.fromName</code> / <code>Secret.fromObject</code>,
<code>Sandbox.fromId</code> / <code>Sandbox.fromName</code> /
<code>Sandbox.list</code>, <code>Image.fromId</code> /
<code>Image.fromRegistry</code> / <code>Image.fromAwsEcr</code> /
<code>Image.fromGcpArtifactRegistry</code> / <code>Image.delete</code>,
<code>Proxy.fromName</code>, and <code>FunctionCall.fromId</code>. the
instance shims <code>app.createSandbox</code>,
<code>app.imageFromRegistry</code> / <code>imageFromAwsEcr</code> /
<code>imageFromGcpArtifactRegistry</code>, the public
<code>CloudBucketMount</code> constructor, and the deprecated
<code>LookupOptions</code> / <code>DeleteOptions</code> /
<code>EphemeralOptions</code> type aliases. See <a
href="https://github.com/modal-labs/modal-client/blob/main/MIGRATION-GUIDE.md"><code>MIGRATION-GUIDE.md</code></a>.</li>
<li><strong>Breaking:</strong> (Go) All public methods now end with a
<code>*XxxParams</code> pointer argument, enabling forward-compatibility
for future options without additional signature churn. Pass
<code>nil</code> to accept
defaults. Affected methods:
<ul>
<li><code>FunctionCall.FromID</code> → <code>FromID(ctx, id,
*FunctionCallFromIDParams)</code></li>
<li><code>Image.FromID</code> → <code>FromID(ctx, id,
*ImageFromIDParams)</code></li>
<li><code>Image.FromRegistry</code> → <code>FromRegistry(tag,
*ImageFromRegistryParams)</code>, the <code>*Secret</code> field remains
inside <code>ImageFromRegistryParams</code> (signature unchanged)</li>
<li><code>Image.FromAwsEcr</code> → <code>FromAwsEcr(tag, secret,
*ImageFromAwsEcrParams)</code> — the
<code>*Secret</code> argument is now a positional parameter preceding
the params struct</li>
<li><code>Image.FromGcpArtifactRegistry</code> →
<code>FromGcpArtifactRegistry(tag, secret,
*ImageFromGcpArtifactRegistryParams)</code> —
the <code>*Secret</code> argument is now a positional parameter
preceding the params struct</li>
<li><code>Image.Build</code> → <code>Build(ctx, app,
*ImageBuildParams)</code></li>
<li><code>Function.GetCurrentStats</code> → <code>GetCurrentStats(ctx,
*FunctionGetCurrentStatsParams)</code></li>
<li><code>ContainerProcess.Wait</code> → <code>Wait(ctx,
*ContainerProcessWaitParams)</code></li>
<li><code>Sandbox.FromID</code> → <code>FromID(ctx, id,
*SandboxFromIDParams)</code></li>
<li><code>Sandbox.Wait</code> → <code>Wait(ctx,
*SandboxWaitParams)</code></li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/modal-labs/modal-client/commit/464b3ec94b79b2f02a270fb98b4ed85d9c85f962"><code>464b3ec</code></a>
Release 0.8.2 go/js SDK (<a
href="https://redirect.github.com/modal-labs/modal-client/issues/46779">#46779</a>)</li>
<li><a
href="https://github.com/modal-labs/modal-client/commit/3f83306e23bec27bf9734912c14c40ff054e6914"><code>3f83306</code></a>
Add Sandbox.UpdateNetworkPolicy to Go SDK (<a
href="https://redirect.github.com/modal-labs/modal-client/issues/46709">#46709</a>)</li>
<li><a
href="https://github.com/modal-labs/modal-client/commit/bb3972100c45f83d58dc04af52f6b46955b58f18"><code>bb39721</code></a>
client: [typescript] Add <code>reload_volumes</code> support for v2
sandboxes (<a
href="https://redirect.github.com/modal-labs/modal-client/issues/46763">#46763</a>)</li>
<li><a
href="https://github.com/modal-labs/modal-client/commit/4982be8007ecc9e32f99a57eb8258575bea1c51b"><code>4982be8</code></a>
client: [go] Add <code>reload_volume</code> support for v2 sandboxes (<a
href="https://redirect.github.com/modal-labs/modal-client/issues/46765">#46765</a>)</li>
<li><a
href="https://github.com/modal-labs/modal-client/commit/60507cfcf7f268c4197ed9a6b93d638b8538f0d6"><code>60507cf</code></a>
Add Sandbox.updateNetworkPolicy to JS SDK (<a
href="https://redirect.github.com/modal-labs/modal-client/issues/46751">#46751</a>)</li>
<li><a
href="https://github.com/modal-labs/modal-client/commit/575b37543df238c6449b9501714dde270cc1d05a"><code>575b375</code></a>
client: [python] Enable reload_volumes for v2 sandboxes (<a
href="https://redirect.github.com/modal-labs/modal-client/issues/46615">#46615</a>)</li>
<li><a
href="https://github.com/modal-labs/modal-client/commit/709e8319c119c2de2135c097439f8e48e1f07761"><code>709e831</code></a>
Fix typo - content manager instead of context manager (<a
href="https://redirect.github.com/modal-labs/modal-client/issues/46600">#46600</a>)</li>
<li><a
href="https://github.com/modal-labs/modal-client/commit/0f0a0ccd0ff438a906aa3dac8d7c65a4ad0c47a7"><code>0f0a0cc</code></a>
API changes for sidecar volumes (<a
href="https://redirect.github.com/modal-labs/modal-client/issues/45342">#45342</a>)</li>
<li><a
href="https://github.com/modal-labs/modal-client/commit/52427413700930739bd1e9d852ca836645687d70"><code>5242741</code></a>
[IO-71] Expose routing_region as an option to .with_options() in the
modal cl...</li>
<li><a
href="https://github.com/modal-labs/modal-client/commit/38db96fdbdd006129c0d6d7779c079c38c7d4b85"><code>38db96f</code></a>
Pin protoc and codegen plugin versions for Go proto generation (<a
href="https://redirect.github.com/modal-labs/modal-client/issues/45919">#45919</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modal-labs/modal-client/compare/go/v0.7.6...go/v0.8.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `pg` from 8.21.0 to 8.22.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md">pg's
changelog</a>.</em></p>
<blockquote>
<h2>pg@8.22.0</h2>
<ul>
<li>Add support for <a
href="https://redirect.github.com/brianc/node-postgres/pull/3688">sslnegotiation=direct</a>
for PostgreSQL 17+.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/brianc/node-postgres/commit/b617619f9fb6fbd231731823e2732a2927ded4be"><code>b617619</code></a>
Publish</li>
<li><a
href="https://github.com/brianc/node-postgres/commit/d80b2612fbe83ed8234637f20b943d85e4331094"><code>d80b261</code></a>
Update docs &amp; changelog</li>
<li><a
href="https://github.com/brianc/node-postgres/commit/835fb83ab9e1cf30fa8367ba42bd633720d71832"><code>835fb83</code></a>
Fix error handling for exceptions on values parsing. (<a
href="https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3574">#3574</a>)</li>
<li><a
href="https://github.com/brianc/node-postgres/commit/f49ab4a9795ae0866409f9bfe52a68b4f65ef024"><code>f49ab4a</code></a>
fix: correct spelling mistakes across codebase (<a
href="https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3692">#3692</a>)</li>
<li><a
href="https://github.com/brianc/node-postgres/commit/d7175a4aa0347b7416109e9ecc61d4d235486d0e"><code>d7175a4</code></a>
Expand CI matrix of PG versions and add direct SSL test (<a
href="https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3693">#3693</a>)</li>
<li><a
href="https://github.com/brianc/node-postgres/commit/882fc308cce7bf136cd1448e00395f760dad3e00"><code>882fc30</code></a>
Add support for sslnegotiation=direct (PostgreSQL 17) (<a
href="https://github.com/brianc/node-postgres/tree/HEAD/packages/pg/issues/3688">#3688</a>)</li>
<li>See full diff in <a
href="https://github.com/brianc/node-postgres/commits/pg@8.22.0/packages/pg">compare
view</a></li>
</ul>
</details>
<br />

Updates `lucide-react` from 1.21.0 to 1.23.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lucide-icons/lucide/releases">lucide-react's
releases</a>.</em></p>
<blockquote>
<h2>Version 1.23.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(docs): prevent scrollbar layout shift on icons page by <a
href="https://github.com/g30r93g"><code>@​g30r93g</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li>
<li>chore(docs): Remove certificates banner by <a
href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4504">lucide-icons/lucide#4504</a></li>
<li>ci(repo-journal.yml): GH copilot repo summary by <a
href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4505">lucide-icons/lucide#4505</a></li>
<li>ci(repo-journal.yml): Small fix in the workflow by <a
href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4508">lucide-icons/lucide#4508</a></li>
<li>ci(repo-journal.yml): Switch to token by <a
href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4509">lucide-icons/lucide#4509</a></li>
<li>feat(icons): added <code>paper-bag</code> icon by <a
href="https://github.com/dkast"><code>@​dkast</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/g30r93g"><code>@​g30r93g</code></a> made
their first contribution in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4500">lucide-icons/lucide#4500</a></li>
<li><a href="https://github.com/dkast"><code>@​dkast</code></a> made
their first contribution in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4023">lucide-icons/lucide#4023</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0">https://github.com/lucide-icons/lucide/compare/1.22.0...1.23.0</a></p>
<h2>Version 1.22.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat(icons): add 6 database variant icons by <a
href="https://github.com/Barakudum"><code>@​Barakudum</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4336">lucide-icons/lucide#4336</a></li>
<li>ci(release.yml): Remove concurrency field to prevent release mess by
<a href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in
<a
href="https://redirect.github.com/lucide-icons/lucide/pull/4485">lucide-icons/lucide#4485</a></li>
<li>fix(docs): fix color input clipping by <a
href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4488">lucide-icons/lucide#4488</a></li>
<li>docs(site): add Deno to installation instructions by <a
href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a> in
<a
href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li>
<li>chore(deps): bump esbuild from 0.25.12 to 0.28.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4459">lucide-icons/lucide#4459</a></li>
<li>fix(docs): prevent private analytics token from blocking local dev
by <a href="https://github.com/Hsiii"><code>@​Hsiii</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4481">lucide-icons/lucide#4481</a></li>
<li>docs(installation.md): Remove outdate next tag in installation by <a
href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4495">lucide-icons/lucide#4495</a></li>
<li>fix(lucide-react-native): Fix context provider export by <a
href="https://github.com/ericfennis"><code>@​ericfennis</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4497">lucide-icons/lucide#4497</a></li>
<li>fix(astro): add Astro v7 compatibility by <a
href="https://github.com/iseraph-dev"><code>@​iseraph-dev</code></a> in
<a
href="https://redirect.github.com/lucide-icons/lucide/pull/4491">lucide-icons/lucide#4491</a></li>
<li>fix(icons): changed <code>carrot</code> icon by <a
href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4010">lucide-icons/lucide#4010</a></li>
<li>fix(icons): changed <code>ungroup</code> icon by <a
href="https://github.com/jguddas"><code>@​jguddas</code></a> in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/3969">lucide-icons/lucide#3969</a></li>
<li>feat(icons): added <code>phi</code> icon also used as
<code>golden-ratio</code> by <a
href="https://github.com/whoisBugsbunny"><code>@​whoisBugsbunny</code></a>
in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4218">lucide-icons/lucide#4218</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/bartlomieju"><code>@​bartlomieju</code></a>
made their first contribution in <a
href="https://redirect.github.com/lucide-icons/lucide/pull/4486">lucide-icons/lucide#4486</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0">https://github.com/lucide-icons/lucide/compare/1.21.0...1.22.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/lucide-icons/lucide/commits/1.23.0/packages/lucide-react">compare
view</a></li>
</ul>
</details>
<br />

Updates `vite` from 8.0.16 to 8.1.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v8.1.2</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v8.1.2/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v8.1.1</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v8.1.1/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>create-vite@8.1.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/create-vite@8.1.0/packages/create-vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>plugin-legacy@8.1.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/plugin-legacy@8.1.0/packages/plugin-legacy/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v8.1.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v8.1.0/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>plugin-legacy@8.1.0-beta.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/plugin-legacy@8.1.0-beta.0/packages/plugin-legacy/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v8.1.0-beta.0</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v8.1.0-beta.0/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite/compare/v8.1.1...v8.1.2">8.1.2</a>
(2026-06-30)<!-- raw HTML omitted --></h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> revert es-module-lexer to 2.1.0 (<a
href="https://redirect.github.com/vitejs/vite/issues/22827">#22827</a>)
(<a
href="https://github.com/vitejs/vite/commit/0d3bd7c4111b8345cfc353c7bbb2c30601752e26">0d3bd7c</a>)</li>
<li>restore, &quot;fix: resolve pnpm .modules.yaml from workspace root
instead of cwd (<a
href="https://redirect.github.com/vitejs/vite/issues/22757">#22757</a>)&quot;
(<a
href="https://redirect.github.com/vitejs/vite/issues/22825">#22825</a>)
(<a
href="https://github.com/vitejs/vite/commit/efb98cce73f3f89c4f03936ab7741cd5b0636f5c">efb98cc</a>)</li>
<li>revert, &quot;fix: escape ids with multiple null bytes (<a
href="https://redirect.github.com/vitejs/vite/issues/22687">#22687</a>)&quot;
(<a
href="https://github.com/vitejs/vite/commit/cccef55dfaa6253929d2cb58d3af53f217efc877">cccef55</a>)</li>
<li>revert, &quot;fix: resolve pnpm .modules.yaml from workspace root
instead of cwd (<a
href="https://redirect.github.com/vitejs/vite/issues/22757">#22757</a>)&quot;
(<a
href="https://github.com/vitejs/vite/commit/cf97711963ddcdcfac3e4fcd00771d7a55e92141">cf97711</a>)</li>
</ul>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite/compare/v8.1.0...v8.1.1">8.1.1</a>
(2026-06-30)<!-- raw HTML omitted --></h2>
<h3>Features</h3>
<ul>
<li>update dynamic import warning to link to Vite docs (<a
href="https://redirect.github.com/vitejs/vite/issues/22823">#22823</a>)
(<a
href="https://github.com/vitejs/vite/commit/62bd7afd27ec0507bf528a135165dda3a44ebc21">62bd7af</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>bundled-dev:</strong> avoid stack overflow on
<code>import.meta.hot.invalidate()</code> (<a
href="https://redirect.github.com/vitejs/vite/issues/22797">#22797</a>)
(<a
href="https://github.com/vitejs/vite/commit/709eb8ee03d3c46269755334f59b7e9a353fc522">709eb8e</a>)</li>
<li><strong>bundled-dev:</strong> serve assets emitted during HMR/lazy
compile (<a
href="https://redirect.github.com/vitejs/vite/issues/22745">#22745</a>)
(<a
href="https://github.com/vitejs/vite/commit/5876b2cc2e1a01df9363e1e3d1d19f474ba68285">5876b2c</a>)</li>
<li><strong>bundledDev:</strong> skip plugin transform hooks for
rolldown-lazy stub modules (<a
href="https://redirect.github.com/vitejs/vite/issues/22778">#22778</a>)
(<a
href="https://github.com/vitejs/vite/commit/8f925e2e496f4d313d860acb53880245b07ce6f7">8f925e2</a>)</li>
<li><strong>css:</strong> preserve dollar signs in external
<code>@import</code> urls with lightningcss (<a
href="https://redirect.github.com/vitejs/vite/issues/22718">#22718</a>)
(<a
href="https://github.com/vitejs/vite/commit/9fa7ab4990f4fe74597d0a37a16d84af1c1e3544">9fa7ab4</a>)</li>
<li><strong>css:</strong> resolve tsconfig paths in CSS and Sass <a
href="https://github.com/import"><code>@​import</code></a> (<a
href="https://redirect.github.com/vitejs/vite/issues/22775">#22775</a>)
(<a
href="https://github.com/vitejs/vite/commit/ef0b8916160c4d2a677decc062f6faa48fbf1578">ef0b891</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/22734">#22734</a>)
(<a
href="https://github.com/vitejs/vite/commit/e635f493faa24930ae637318d6564539bc668e89">e635f49</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/22804">#22804</a>)
(<a
href="https://github.com/vitejs/vite/commit/8837400a676a633af1ad6d3746b584d13cf90ecc">8837400</a>)</li>
<li><strong>deps:</strong> update rolldown-related dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/22591">#22591</a>)
(<a
href="https://github.com/vitejs/vite/commit/2ce6677a151c53a019baec32859b646267f9d320">2ce6677</a>)</li>
<li>escape ids with multiple null bytes (<a
href="https://redirect.github.com/vitejs/vite/issues/22687">#22687</a>)
(<a
href="https://github.com/vitejs/vite/commit/833fc302f3f4a5030f49207b5fbf10422f3247a2">833fc30</a>)</li>
<li>hide console window when running 'net use' on Windows (<a
href="https://redirect.github.com/vitejs/vite/issues/22698">#22698</a>)
(<a
href="https://github.com/vitejs/vite/commit/92b63f219f6c1872f35461aa75e9e9aec79bb01c">92b63f2</a>)</li>
<li>ignore bundled config temp dir (<a
href="https://redirect.github.com/vitejs/vite/issues/22800">#22800</a>)
(<a
href="https://github.com/vitejs/vite/commit/043a81096ddf8c6f9077c8e3e12362c83f9ed089">043a810</a>)</li>
<li>invert <code>esbuild.jsxSideEffects</code> when converting to
<code>oxc.jsx.pure</code> (<a
href="https://redirect.github.com/vitejs/vite/issues/22809">#22809</a>)
(<a
href="https://github.com/vitejs/vite/commit/33895ba4faa0a46d5bd7b3eb53d02255113c8b5d">33895ba</a>)</li>
<li><strong>optimize-deps:</strong> ignore
<code>ERR_CLOSED_SERVER</code> in scanner (<a
href="https://redirect.github.com/vitejs/vite/issues/22784">#22784</a>)
(<a
href="https://github.com/vitejs/vite/commit/085a0ab704bf1a698d459d625a5c955d27b73134">085a0ab</a>)</li>
<li><strong>optimizer:</strong> scanner should resolve
<code>input</code> from <code>root</code> (<a
href="https://redirect.github.com/vitejs/vite/issues/22769">#22769</a>)
(<a
href="https://github.com/vitejs/vite/commit/9722b0795b68602597ddd53e3d3c7ed9f00cb831">9722b07</a>)</li>
<li>resolve pnpm .modules.yaml from workspace root instead of cwd (<a
href="https://redirect.github.com/vitejs/vite/issues/22757">#22757</a>)
(<a
href="https://github.com/vitejs/vite/commit/2531ac7ccd1d581df5febe4a3814226ba8939a20">2531ac7</a>)</li>
<li>return sourcemap field from some plugins that were lacking (<a
href="https://redirect.github.com/vitejs/vite/issues/22782">#22782</a>)
(<a
href="https://github.com/vitejs/vite/commit/7e18bf802bdde7a386eb3b407c87a67f89a895ca">7e18bf8</a>)</li>
<li><strong>server:</strong> handle malformed URI in indexHtmlMiddleware
(<a
href="https://redirect.github.com/vitejs/vite/issues/22781">#22781</a>)
(<a
href="https://github.com/vitejs/vite/commit/84f5cccc7574c740c46f5cb2a09f29cde8380701">84f5ccc</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li>improve dependency optimizer messages (<a
href="https://redirect.github.com/vitejs/vite/issues/22549">#22549</a>)
(<a
href="https://github.com/vitejs/vite/commit/092cb3b4247a06ba176c094a9a743d335adc6574">092cb3b</a>)</li>
</ul>
<h3>Code Refactoring</h3>
<ul>
<li><strong>css:</strong> remove lightningcss null byte bug workaround
(<a
href="https://redirect.github.com/vitejs/vite/issues/22822">#22822</a>)
(<a
href="https://github.com/vitejs/vite/commit/2dafd3bb7f8b265037e216f50afaa890ae2e2875">2dafd3b</a>)</li>
<li>use pre-defined environments variable to avoid duplicate
<code>Object.values</code> calls (<a
href="https://redirect.github.com/vitejs/vite/issues/22790">#22790</a>)
(<a
href="https://github.com/vitejs/vite/commit/1113acf6cff711196b3443f7126804847c1d4e1e">1113acf</a>)</li>
</ul>
<h3>Tests</h3>
<ul>
<li>enable &quot;manual chunk path&quot; test and remove
&quot;worker.format error&quot; test (<a
href="https://redirect.github.com/vitejs/vite/issues/22824">#22824</a>)
(<a
href="https://github.com/vitejs/vite/commit/c088511f34a01f13e21498a492df8554bf332cdf">c088511</a>)</li>
</ul>
<h2><a
href="https://github.com/vitejs/vite/compare/v8.1.0-beta.0...v8.1.0">8.1.0</a>
(2026-06-23)</h2>
<h3>Features</h3>
<ul>
<li>extend <code>server.fs.deny</code> list with common files (<a
href="https://redirect.github.com/vitejs/vite/issues/22707">#22707</a>)
(<a
href="https://github.com/vitejs/vite/commit/61ba8fdc6500e8aa668021833ae5e6ebd200466d">61ba8fd</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/ba3119397d0110952f29965774c627a3017d7292"><code>ba31193</code></a>
release: v8.1.2</li>
<li><a
href="https://github.com/vitejs/vite/commit/0d3bd7c4111b8345cfc353c7bbb2c30601752e26"><code>0d3bd7c</code></a>
fix(deps): revert es-module-lexer to 2.1.0 (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22827">#22827</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/efb98cce73f3f89c4f03936ab7741cd5b0636f5c"><code>efb98cc</code></a>
fix: restore, &quot;fix: resolve pnpm .modules.yaml from workspace root
instead of...</li>
<li><a
href="https://github.com/vitejs/vite/commit/cf97711963ddcdcfac3e4fcd00771d7a55e92141"><code>cf97711</code></a>
fix: revert, &quot;fix: resolve pnpm .modules.yaml from workspace root
instead of ...</li>
<li><a
href="https://github.com/vitejs/vite/commit/cccef55dfaa6253929d2cb58d3af53f217efc877"><code>cccef55</code></a>
fix: revert, &quot;fix: escape ids with multiple null bytes (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22687">#22687</a>)&quot;</li>
<li><a
href="https://github.com/vitejs/vite/commit/4ae9e14f2c4db0706b2e9d815656e050accbd2bf"><code>4ae9e14</code></a>
release: v8.1.1</li>
<li><a
href="https://github.com/vitejs/vite/commit/8f925e2e496f4d313d860acb53880245b07ce6f7"><code>8f925e2</code></a>
fix(bundledDev): skip plugin transform hooks for rolldown-lazy stub
modules (...</li>
<li><a
href="https://github.com/vitejs/vite/commit/c088511f34a01f13e21498a492df8554bf332cdf"><code>c088511</code></a>
test: enable &quot;manual chunk path&quot; test and remove
&quot;worker.format error&quot; test (...</li>
<li><a
href="https://github.com/vitejs/vite/commit/62bd7afd27ec0507bf528a135165dda3a44ebc21"><code>62bd7af</code></a>
feat: update dynamic import warning to link to Vite docs (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22823">#22823</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/2dafd3bb7f8b265037e216f50afaa890ae2e2875"><code>2dafd3b</code></a>
refactor(css): remove lightningcss null byte bug workaround (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/22822">#22822</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite/commits/v8.1.2/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-02 05:15:37 +00:00
dependabot[bot] 88986a2417 build(deps): bump the major-deps-updates-main group with 3 updates (#641)
Bumps the major-deps-updates-main group with 3 updates:
[@agentclientprotocol/sdk](https://github.com/agentclientprotocol/typescript-sdk),
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
and [p-queue](https://github.com/sindresorhus/p-queue).

Updates `@agentclientprotocol/sdk` from 0.24.0 to 1.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/agentclientprotocol/typescript-sdk/releases">@​agentclientprotocol/sdk's
releases</a>.</em></p>
<blockquote>
<h2>v1.1.0</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v1.0.0...v1.1.0">1.1.0</a>
(2026-06-29)</h2>
<h3>Features</h3>
<ul>
<li>Expose request ids in handler contexts (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/202">#202</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/eda849ca7894f32e4ed11df81eb5b024e5512e5b">eda849c</a>)</li>
</ul>
<h2>v1.0.0</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.29.0...v1.0.0">1.0.0</a>
(2026-06-24)</h2>
<h3>Features</h3>
<ul>
<li><strong>schema:</strong> Update to v1.16.0 of the schema (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/199">#199</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/de5879100c1bb5e2fdaebc957c1ca01364eb33cc">de58791</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li>release 1.0.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/201">#201</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/008fc2861adc3f87edc4daa12eb78b81a6fd7161">008fc28</a>)</li>
</ul>
<h2>v0.29.0</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.28.1...v0.29.0">0.29.0</a>
(2026-06-22)</h2>
<h3>Features</h3>
<ul>
<li><strong>unstable:</strong> Add support for request cancellation (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/195">#195</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/d5197f9f6346a4b57084552e0bdf3c71ccf64412">d5197f9</a>)</li>
</ul>
<h2>v0.28.1</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.28.0...v0.28.1">0.28.1</a>
(2026-06-19)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Expose peer contexts from app connections (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/190">#190</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/d6573109fd7c27170cd970aa9b28e7e6054e993e">d657310</a>)</li>
</ul>
<h2>v0.28.0</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.27.1...v0.28.0">0.28.0</a>
(2026-06-18)</h2>
<h3>Features</h3>
<ul>
<li><strong>schema:</strong> Update to schema v1.14.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/185">#185</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/3c619a737120bbd4ccc6282b893e94152125562c">3c619a7</a>)</li>
</ul>
<h2>v0.27.1</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.27.0...v0.27.1">0.27.1</a>
(2026-06-18)</h2>
<h3>Bug Fixes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/agentclientprotocol/typescript-sdk/blob/main/CHANGELOG.md">@​agentclientprotocol/sdk's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v1.0.0...v1.1.0">1.1.0</a>
(2026-06-29)</h2>
<h3>Features</h3>
<ul>
<li>Expose request ids in handler contexts (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/202">#202</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/eda849ca7894f32e4ed11df81eb5b024e5512e5b">eda849c</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.29.0...v1.0.0">1.0.0</a>
(2026-06-24)</h2>
<h3>Features</h3>
<ul>
<li><strong>schema:</strong> Update to v1.16.0 of the schema (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/199">#199</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/de5879100c1bb5e2fdaebc957c1ca01364eb33cc">de58791</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li>release 1.0.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/201">#201</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/008fc2861adc3f87edc4daa12eb78b81a6fd7161">008fc28</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.28.1...v0.29.0">0.29.0</a>
(2026-06-22)</h2>
<h3>Features</h3>
<ul>
<li><strong>unstable:</strong> Add support for request cancellation (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/195">#195</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/d5197f9f6346a4b57084552e0bdf3c71ccf64412">d5197f9</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.28.0...v0.28.1">0.28.1</a>
(2026-06-19)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Expose peer contexts from app connections (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/190">#190</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/d6573109fd7c27170cd970aa9b28e7e6054e993e">d657310</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.27.1...v0.28.0">0.28.0</a>
(2026-06-18)</h2>
<h3>Features</h3>
<ul>
<li><strong>schema:</strong> Update to schema v1.14.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/185">#185</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/3c619a737120bbd4ccc6282b893e94152125562c">3c619a7</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.27.0...v0.27.1">0.27.1</a>
(2026-06-18)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>node-adapter:</strong> Cap HTTP request body size (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/186">#186</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/3832d4ce69d9f44c5f886c9b3ff24169d6119236">3832d4c</a>)</li>
<li><strong>node-adapter:</strong> harden Node adapter request parsing
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/220eae660e459ac648fe352b756b586f39f9aa1e">220eae6</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.26.0...v0.27.0">0.27.0</a>
(2026-06-18)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/78023d41520d693fcc79aed9c9c635b7bc3e58e8"><code>78023d4</code></a>
chore(main): release 1.1.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/203">#203</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/eda849ca7894f32e4ed11df81eb5b024e5512e5b"><code>eda849c</code></a>
feat: Expose request ids in handler contexts (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/202">#202</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/f8bf32c6be943e59969f31c65f338914fe25420e"><code>f8bf32c</code></a>
chore(main): release 1.0.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/200">#200</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/008fc2861adc3f87edc4daa12eb78b81a6fd7161"><code>008fc28</code></a>
chore: release 1.0.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/201">#201</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/de5879100c1bb5e2fdaebc957c1ca01364eb33cc"><code>de58791</code></a>
feat(schema): Update to v1.16.0 of the schema (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/199">#199</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/bdc626790d26470324a68f26df9d3b6c152cec4c"><code>bdc6267</code></a>
chore(main): release 0.29.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/196">#196</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/675ecbab8fde8054b621dd7c1ead758230d0c653"><code>675ecba</code></a>
chore: Update Hey API OpenAPI TS to 0.99 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/197">#197</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/d5197f9f6346a4b57084552e0bdf3c71ccf64412"><code>d5197f9</code></a>
feat(unstable): Add support for request cancellation (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/195">#195</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/06c932a22a5f8dc3cf691b20f4cc9d312d6e26a1"><code>06c932a</code></a>
chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/192">#192</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/ffdbaac36004d9623a6ed8f37030650e5c8f409e"><code>ffdbaac</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 25.9.3 to 26.0.0
(<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/193">#193</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.24.0...v1.1.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 25.9.3 to 26.1.0
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `p-queue` from 8.1.1 to 9.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sindresorhus/p-queue/releases">p-queue's
releases</a>.</em></p>
<blockquote>
<h2>v9.3.0</h2>
<ul>
<li>Add <code>timeoutRemaining</code> to <code>runningTasks</code>
57d0a1a</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/p-queue/compare/v9.2.0...v9.3.0">https://github.com/sindresorhus/p-queue/compare/v9.2.0...v9.3.0</a></p>
<h2>v9.2.0</h2>
<ul>
<li>Improve performance (<a
href="https://redirect.github.com/sindresorhus/p-queue/issues/244">#244</a>)
87077d0</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/p-queue/compare/v9.1.2...v9.2.0">https://github.com/sindresorhus/p-queue/compare/v9.1.2...v9.2.0</a></p>
<h2>v9.1.2</h2>
<ul>
<li>Fix: Export <code>PriorityQueue</code> type (<a
href="https://redirect.github.com/sindresorhus/p-queue/issues/242">#242</a>)
a20e1f3</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/p-queue/compare/v9.1.1...v9.1.2">https://github.com/sindresorhus/p-queue/compare/v9.1.1...v9.1.2</a></p>
<h2>v9.1.1</h2>
<ul>
<li>Fix <code>signal</code> option not rejecting when task is aborted
while queued a64b316
<ul>
<li>If you use a custom queue class, you will have to add a
<code>remove()</code> method. See the built-in class.</li>
</ul>
</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/p-queue/compare/v9.1.0...v9.1.1">https://github.com/sindresorhus/p-queue/compare/v9.1.0...v9.1.1</a></p>
<h2>v9.1.0</h2>
<ul>
<li>Add <a
href="https://github.com/sindresorhus/p-queue?tab=readme-ov-file#strict"><code>strict</code></a>
option for sliding window rate limiting 03b8156</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/p-queue/compare/v9.0.1...v9.1.0">https://github.com/sindresorhus/p-queue/compare/v9.0.1...v9.1.0</a></p>
<h2>v9.0.1</h2>
<ul>
<li>Fix: Remove abort listener when operation completes (<a
href="https://redirect.github.com/sindresorhus/p-queue/issues/235">#235</a>)
e9074f0</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/p-queue/compare/v9.0.0...v9.0.1">https://github.com/sindresorhus/p-queue/compare/v9.0.0...v9.0.1</a></p>
<h2>v9.0.0</h2>
<h3>Breaking</h3>
<ul>
<li>Require Node.js 20  b2600d5</li>
<li>Remove <code>throwOnTimeout</code> option - timeouts now always
throw e48716f
<ul>
<li>It was a mistake to not throw on timeouts and the option made it
complicated to handle types.</li>
<li>If you really need the old behavior back:</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/cfa917af261fb6db9eb1281221ba21093eb49e3d"><code>cfa917a</code></a>
9.3.0</li>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/b5a483f2b76f977f89e0968afcbd5e61643dff11"><code>b5a483f</code></a>
Fix docs</li>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/57d0a1a3ef683c3491aff71e03a4e3dfb4ed95a2"><code>57d0a1a</code></a>
Add <code>timeoutRemaining</code> to <code>runningTasks</code></li>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/fc4b7369d915ade31416d603fd35fd26c1885851"><code>fc4b736</code></a>
9.2.0</li>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/ea65ce3659cb3e3be2fbe7049e69e280f04c8378"><code>ea65ce3</code></a>
Tweaks</li>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/87077d0214c203f38d0f36c4efee8172e67bf1c4"><code>87077d0</code></a>
Improve performance (<a
href="https://redirect.github.com/sindresorhus/p-queue/issues/244">#244</a>)</li>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/53848611d103e16f39e94cba8c70a36f0ec791a0"><code>5384861</code></a>
Fix CI</li>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/55d306ba03479dcc531a8e06deab24d3f60feacd"><code>55d306b</code></a>
9.1.2</li>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/a20e1f34b5c82e4e91e5d2e0c8b663e831dc16ab"><code>a20e1f3</code></a>
Export <code>PriorityQueue</code> type (<a
href="https://redirect.github.com/sindresorhus/p-queue/issues/242">#242</a>)</li>
<li><a
href="https://github.com/sindresorhus/p-queue/commit/9eec7efb433c33f66799d9dec41aa56d43f3435a"><code>9eec7ef</code></a>
9.1.1</li>
<li>Additional commits viewable in <a
href="https://github.com/sindresorhus/p-queue/compare/v8.1.1...v9.3.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-02 05:08:05 +00:00
Christian Bromann 5b462f2ab2 fix: migrate Daytona SDK dependency [closes #609] (#614)
## Description
Closes #609 by updating `@langchain/daytona` to the maintained
`@daytona/sdk` at `^0.184.0` while preserving the same SDK API usage.
Added a patch changeset; `@daytona/sdk` is Apache-2.0 and maintained by
Daytona as the direct replacement for deprecated `@daytonaio/sdk`.

## Self-Hosted Release Note
`@langchain/daytona` now depends on `@daytona/sdk` instead of deprecated
`@daytonaio/sdk`.

## Test Plan
- [ ] Verify package publish metadata resolves `@daytona/sdk`
`^0.184.0`.

Made by [Open
SWE](https://openswe.vercel.app/agents/d6f434c5-39c6-eef7-6cc6-670cf092bb67)

Co-authored-by: Christian Bromann <731337+christian-bromann@users.noreply.github.com>
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-06-29 08:25:57 -07:00
Christian Bromann 0ae10d7e26 fix(deepagents): declare LangChain runtime packages as peer dependencies (#613)
Updates to `@langchain/core` can cause downstream friction with
TypeScript:

```
Type 'ChatOpenAI<ChatOpenAICallOptions>' is not assignable to type 'string | BaseLanguageModel<any, BaseLanguageModelCallOptions> | undefined'.
  Type 'ChatOpenAI<ChatOpenAICallOptions>' is not assignable to type 'BaseLanguageModel<any, BaseLanguageModelCallOptions>'.
    Types of property 'getGraph' are incompatible.
      Type '(_?: import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.1_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/runnables/types").RunnableConfig<Record<string, any>> | undefined) => import("/Users/christian.bromann/Sites/L...' is not assignable to type '(_?: import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.0_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/runnables/types").RunnableConfig<Record<string, any>> | undefined) => import("/Users/christian.bromann/Sites/L...'.
        Types of parameters '_' and '_' are incompatible.
          Type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.0_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/runnables/types").RunnableConfig<Record<string, any>> | undefined' is not assignable to type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.1_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/runnables/types").RunnableConfig<Record<string, any>> | undefined'.
            Type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.0_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/runnables/types").RunnableConfig<Record<string, any>>' is not assignable to type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.1_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/runnables/types").RunnableConfig<Record<string, any>>'.
              Types of property 'callbacks' are incompatible.
                Type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.0_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").Callbacks | undefined' is not assignable to type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.1_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").Callbacks | undefined'.
                  Type 'CallbackManager' is not assignable to type 'Callbacks | undefined'.
                    Type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.0_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").CallbackManager' is not assignable to type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.1_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").CallbackManager'.
                      The types returned by 'handleLLMStart(...)' are incompatible between these types.
                        Type 'Promise<import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.0_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").CallbackManagerForLLMRun[]>' is not assignable to type 'Promise<import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.1_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").CallbackManagerForLLMRun[]>'.
                          Type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.0_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").CallbackManagerForLLMRun[]' is not assignable to type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.1_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").CallbackManagerForLLMRun[]'.
                            Type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.0_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").CallbackManagerForLLMRun' is not assignable to type 'import("/Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith/node_modules/.pnpm/@langchain+core@1.2.1_openai@6.44.0_ws@8.21.0_zod@4.4.3__ws@8.21.0/node_modules/@langchain/core/dist/callbacks/manager").CallbackManagerForLLMRun'.
                              Property 'inheritableHandlers' is protected but type 'BaseRunManager' is not a class derived from 'BaseRunManager'.ts(2322)
```

to avoid this we should move the LangChain dependency to become peer
deps.

- Moved `@langchain/core`, `@langchain/langgraph`,
`@langchain/langgraph-sdk`, and `langchain` from `dependencies` to
`peerDependencies` in `libs/deepagents`, keeping dev copies for isolated
build/test.
- Lets consumers bump `@langchain/core` without requiring a new
`deepagents` release; a release is only needed to widen the peer range
across a major.
- Note on install contract: npm 7+ and pnpm 8+ auto-install peers; Yarn
only warns, so Yarn users must add the four packages explicitly (worth a
README follow-up).

---------

Signed-off-by: Christian Bromann <git@bromann.dev>
Co-authored-by: open-swe[bot] <215916821+open-swe[bot]@users.noreply.github.com>
2026-06-22 17:25:00 -07:00
Alexander Olsen d7ecab2d9f fix(deepagents): forward subagent results as text (#608)
## Summary

A deep agent that delegates to a subagent 400s when that subagent uses
an Anthropic server-side tool (web search, web fetch, code execution,
MCP). The subagent's final-message content blocks e.g.
server_tool_use/..._tool_result were forwarded verbatim as the task
ToolMessage content. On the parent agent's next request they serialize
into a tool_result, which Anthropic rejects:

`400 invalid_request_error
messages.N.content.0.tool_result.content.0: Input tag 'server_tool_use'
found using 'type'
does not match any of the expected tags:
'document','image','search_result','text','tool_reference'`

## Solution

Now matches the Python impl: forward only the subagent's text answer.
returnCommandWithStateUpdate now walks back to the last AIMessage with
non-empty text and uses that text (a string) as the ToolMessage content.

- Confirmed the Python deepagents impl is not affected (it forwards
.text); this aligns JS with Python.
- Reproduced the 400 across {web_search, code_execution, web_fetch} ×
{claude-haiku-4-5, claude-sonnet-4-6} on the latest published packages;
all green after the fix.

## Tests
- New: subagent server-tool blocks are filtered from forwarded content.
- New: walk-back uses the last non-empty AIMessage, skipping a trailing
empty message.
- Updated the #239/#245 tests to assert the (now string) ToolMessage
content.
- No regressions in subagent-related tests in the evals suite

---------

Signed-off-by: Alexander Olsen <aolsenjazz@gmail.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
2026-06-22 11:43:03 -04:00
Alexander Olsen 42f34b65ed feat(deepagents): add bedrockPromptCachingMiddleware to default stack (#611)
## Summary

- Adds `bedrockPromptCachingMiddleware` to the default middleware stack
- Adds unit tests for the Bedrock model detection util function covering
the different formats of model strings/`ChatModel`s
2026-06-22 11:12:59 -04:00
Colin Francis 3c8f8b2ea6 chore(quickjs): disallow task as a configurable ptc tool (#606)
### Summary

The code interpreter now comes with a global `task` tool out of the box.
As a result, we should disallow specifying the `task` tool for ptc. This
PR implements logic that forbids the task tool as in ptc and throws with
a detailed error message if found. This PR also updates the RLM agent
example and READMEs.

### Tests

Unit tests validating expected behavior for task by name and tool
instance with "task" name.
2026-06-18 15:07:53 -07:00
github-actions[bot] a9e1ba1b89 chore: version packages (#605)
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.15

### Patch Changes

- Updated dependencies
[[`7c4a11e`](https://github.com/langchain-ai/deepagentsjs/commit/7c4a11eacc11c3720b70d802068300ac3b4d8651)]:
  - deepagents@1.10.5
## deepagents@1.10.5

### Patch Changes

- [#598](https://github.com/langchain-ai/deepagentsjs/pull/598)
[`7c4a11e`](https://github.com/langchain-ai/deepagentsjs/commit/7c4a11eacc11c3720b70d802068300ac3b4d8651)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
refactor(stream): use langchain `run.subagents` instead of bespoke
transformer

Remove deepagents' custom `createSubagentTransformer` and rely on the
native
  subagent stream that `createAgent` registers (langchain#37739). Keep
`DeepAgentRunStream` as a compile-time overlay that narrows
`run.subagents` to
declared subagent specs. Update streaming tests for `cause` and
per-subagent
  message coverage.
## @langchain/quickjs@0.5.1

### Patch Changes

- [#602](https://github.com/langchain-ai/deepagentsjs/pull/602)
[`204cb27`](https://github.com/langchain-ai/deepagentsjs/commit/204cb27414c82c34a0c681c7e5a5336e1834f058)
Thanks [@colifran](https://github.com/colifran)! - chore(quickjs):
refine dynamic subagent prompt to trigger on workflow keyword and to
improve iterative eval behavior

- [#604](https://github.com/langchain-ai/deepagentsjs/pull/604)
[`0971007`](https://github.com/langchain-ai/deepagentsjs/commit/0971007ab2491e73eb1a78c5426ab934470d5620)
Thanks [@colifran](https://github.com/colifran)! - fix(quickjs): unwrap
Command/ToolMessage envelopes from tool and subagent results
## @deepagents/evals@0.0.14

### Patch Changes

- Updated dependencies
[[`7c4a11e`](https://github.com/langchain-ai/deepagentsjs/commit/7c4a11eacc11c3720b70d802068300ac3b4d8651)]:
  - deepagents@1.10.5

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-18 09:38:18 -07:00
Christian Bromann 7c4a11eacc fix(deepagents): use langchain run.subagents instead of bespoke transformer (#598)
## Summary
- Remove deepagents' bespoke `createSubagentTransformer` (~460 lines)
and wire `createDeepAgent` to langchain's native `run.subagents`
projection from `createAgent` (langchain#37739).
- Slim `stream.ts` to type-only exports: re-export `SubagentRunStream`
from langchain and keep `DeepAgentRunStream` as a compile-time narrowing
over declared subagent specs.
- Update streaming tests for `sub.cause` (replacing `taskInput`), add
single-subagent `sub.messages` coverage, and document parallel-subagent
streaming behavior.
- Pin `langchain@1.4.6-dev-1781497519109` and `@langchain/langgraph` /
`@langchain/langgraph-checkpoint` to `d2312cf` dev builds (root
`pnpm.overrides`) for end-to-end verification until published releases
are available.
- Clarify `streamTransformers` docs: custom transformers surface on
`run.extensions`; built-in streams like `run.subagents` and
`run.toolCalls` are separate.

fixes #560
2026-06-18 09:36:50 -07:00
Colin Francis 0971007ab2 fix(quickjs): unwrap Command/ToolMessage envelopes from tool and subagent results (#604)
### Summary

The deepagents `task` tool resolves to a LangGraph `Command` (and some
tools return a `ToolMessage` or a list of messages), but the quickjs
bridges passed these envelopes straight to the REPL so `task(...)` and
PTC `tools.*` calls handed the model the wrapper instead of the
subagent's actual output, breaking the contract that a `responseSchema`
dispatch resolves to a typed value.

This PR adds `unwrapToolEnvelope`: a duck-typed unwrap of `Command` /
`ToolMessage` / message-list shapes that reverse-scans `update.messages`
for the last message with content and reads both live and serialized
forms. Non-envelope values pass through unchanged.

`unwrapToolEnvelope` is wired into both bridges, i.e., the `task()`
dispatch and the PTC `tools.*` bridge.

Inspired by the Python's
[`coerce_tool_output_for_ptc`](https://github.com/langchain-ai/deepagents/blob/4c347603162e181c721e5e2a5ca8bbff6828e23c/libs/partners/quickjs/langchain_quickjs/_format.py#L93-L119).

### Tests

- `coerce.test.ts` provide unit test coverage for `unwrapToolEnvelope`:
string/null/undefined passthrough, `Command` (single + multi-message),
reverse-scan past empty trailing messages, serialized `kwargs.content`,
bare `ToolMessage`, message lists, content-block arrays and plain `{
content }` objects left untouched.
- `middleware.test.ts` provides an integration test that the `task()`
bridge returns the parsed structured value from a `Command` result.
2026-06-18 06:27:35 -07:00
Colin Francis 204cb27414 chore(quickjs): refine dynamic subagent prompt to trigger on workflow keyword and to improve iterative eval behavior (#602)
### Summary

Prompt change only, no runtime behavior change.

Reworks the quickjs code-interpreter subagent prompt to steer the
orchestrator toward an explore-then-distribute workflow. It explores
with its own tools first, hands subagents file paths instead of pasted
contents, reuses persisted REPL variables rather than re-pasting prior
eval output, and returns results via the last expression instead of
`console.log`. Also gates the REPL sandbox note so it only mentions the
`tools.*` namespace when PTC is actually exposed.

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 06:27:18 -07:00
github-actions[bot] 750d69c024 chore: version packages (#568)
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
## @langchain/node-vfs@0.2.0

### Minor Changes

- [#575](https://github.com/langchain-ai/deepagentsjs/pull/575)
[`5d266a2`](https://github.com/langchain-ai/deepagentsjs/commit/5d266a213d8d3d15c2281e2e00ab71ee30ca3ffe)
Thanks [@hntrl](https://github.com/hntrl)! - BREAKING: remove shell
execution from the VFS provider

`VfsBackend` now operates as a filesystem-only `BackendProtocolV2`
implementation and no longer exposes command execution.

The provider now implements `read`, `ls`, `grep`, and `glob` directly
against the in-memory VFS, path resolution is confined to the virtual
workspace root, and legacy `VfsSandbox` / `createVfsSandboxFactory*`
aliases are removed.
## @langchain/quickjs@0.5.0

### Minor Changes

- [#590](https://github.com/langchain-ai/deepagentsjs/pull/590)
[`7ee3feb`](https://github.com/langchain-ai/deepagentsjs/commit/7ee3feb674c361305b2a031db9132253e3d0543b)
Thanks [@colifran](https://github.com/colifran)! - chore(quickjs):
remove skills backend and associated plumbing

- [#592](https://github.com/langchain-ai/deepagentsjs/pull/592)
[`72cfb0c`](https://github.com/langchain-ai/deepagentsjs/commit/72cfb0c0384b30059b5e8028139a2e167c1be882)
Thanks [@colifran](https://github.com/colifran)! - feat(quickjs):
implement default subagent primitive in code interpreter for
programmatic subagent calling

### Patch Changes

- [#594](https://github.com/langchain-ai/deepagentsjs/pull/594)
[`61db938`](https://github.com/langchain-ai/deepagentsjs/commit/61db9381494f61b4548cd80b715e5af72fdde381)
Thanks [@colifran](https://github.com/colifran)! - chore(quickjs):
remove configurable concurrency and add subagents option with true
default

- [#546](https://github.com/langchain-ai/deepagentsjs/pull/546)
[`b7a5f26`](https://github.com/langchain-ai/deepagentsjs/commit/b7a5f26fd9cba992b11e1a4cf18607d64533503b)
Thanks [@open-swe](https://github.com/apps/open-swe)! - fix(quickjs):
scope `CodeInterpreterMiddleware` REPL prompt sandbox bullet to the
runtime
## deepagents-acp@0.1.14

### Patch Changes

- Updated dependencies
[[`18557db`](https://github.com/langchain-ai/deepagentsjs/commit/18557db7bbdf92052ed5f994512fb70e11989e69),
[`773cac5`](https://github.com/langchain-ai/deepagentsjs/commit/773cac5dc7efc7843dd882642d91f7d64d6fde81),
[`1ca6dc9`](https://github.com/langchain-ai/deepagentsjs/commit/1ca6dc92fd40a6d845d24b95ba14b8f2643db394),
[`03df237`](https://github.com/langchain-ai/deepagentsjs/commit/03df237385fbdfefd862076c5588eb39cb6e43c3),
[`84f3c0c`](https://github.com/langchain-ai/deepagentsjs/commit/84f3c0c2f1cad271191bcc138b84ba5b9c9205c9),
[`72cfb0c`](https://github.com/langchain-ai/deepagentsjs/commit/72cfb0c0384b30059b5e8028139a2e167c1be882),
[`04cc3fc`](https://github.com/langchain-ai/deepagentsjs/commit/04cc3fc26001ee566ed94de44c2dda2cf6adecc4),
[`18fbb48`](https://github.com/langchain-ai/deepagentsjs/commit/18fbb4839050e98ae3cfd36ec69b11f0725ad6d6),
[`e3d4b53`](https://github.com/langchain-ai/deepagentsjs/commit/e3d4b5367b1825df56c919b483ec4a3e117d631f)]:
  - deepagents@1.10.4
## deepagents@1.10.4

### Patch Changes

- [#551](https://github.com/langchain-ai/deepagentsjs/pull/551)
[`18557db`](https://github.com/langchain-ai/deepagentsjs/commit/18557db7bbdf92052ed5f994512fb70e11989e69)
Thanks [@antonnak](https://github.com/antonnak)! - fix(deepagents): gate
cache_control writes on per-call request.model

`createCacheBreakpointMiddleware` and `createMemoryMiddleware` were
gating
the Anthropic-specific `cache_control` write at agent-creation time
only.
When `modelFallbackMiddleware` swapped `request.model` to a
non-Anthropic
  provider mid-flight (e.g. on Anthropic 5xx), the marker leaked through
  and the fallback provider rejected the request with
  `400 Unknown parameter: 'cache_control'`. Both middlewares now also
check `isAnthropicModel(request.model)` inside `wrapModelCall`. Fixes
[#550](https://github.com/langchain-ai/deepagentsjs/issues/550).

- [#591](https://github.com/langchain-ai/deepagentsjs/pull/591)
[`773cac5`](https://github.com/langchain-ai/deepagentsjs/commit/773cac5dc7efc7843dd882642d91f7d64d6fde81)
Thanks [@colifran](https://github.com/colifran)! - chore(deepagents):
expose createSubAgent

- [#541](https://github.com/langchain-ai/deepagentsjs/pull/541)
[`1ca6dc9`](https://github.com/langchain-ai/deepagentsjs/commit/1ca6dc92fd40a6d845d24b95ba14b8f2643db394)
Thanks [@ixchio](https://github.com/ixchio)! - fix getMimeType to return
application/octet-stream for unknown file extensions instead of
text/plain

- [#572](https://github.com/langchain-ai/deepagentsjs/pull/572)
[`03df237`](https://github.com/langchain-ai/deepagentsjs/commit/03df237385fbdfefd862076c5588eb39cb6e43c3)
Thanks [@hntrl](https://github.com/hntrl)! - fix: scope CompositeBackend
grep/glob route fanout by search path

CompositeBackend now limits fallback route fanout to routes mounted
under the requested search path, instead of querying all routed backends
unconditionally.

This avoids unrelated routed backend calls (and side-effect errors) for
scoped searches like `path="/workspace"`, while preserving full fanout
behavior at root (`path="/"`).

- [#574](https://github.com/langchain-ai/deepagentsjs/pull/574)
[`84f3c0c`](https://github.com/langchain-ai/deepagentsjs/commit/84f3c0c2f1cad271191bcc138b84ba5b9c9205c9)
Thanks [@hntrl](https://github.com/hntrl)! - fix(deepagents): add
explicit browser and node entrypoints
  - add `deepagents/browser` and `deepagents/node` subpath exports
- route browser bundlers to the browser-safe bundle via the root
`browser` export condition
- avoid named Node builtin imports in backend utils that can break
browser builds
  - document browser guidance to import from `deepagents/browser`

- [#592](https://github.com/langchain-ai/deepagentsjs/pull/592)
[`72cfb0c`](https://github.com/langchain-ai/deepagentsjs/commit/72cfb0c0384b30059b5e8028139a2e167c1be882)
Thanks [@colifran](https://github.com/colifran)! - feat(quickjs):
implement default subagent primitive in code interpreter for
programmatic subagent calling

- [#566](https://github.com/langchain-ai/deepagentsjs/pull/566)
[`04cc3fc`](https://github.com/langchain-ai/deepagentsjs/commit/04cc3fc26001ee566ed94de44c2dda2cf6adecc4)
Thanks [@hntrl](https://github.com/hntrl)! - fix(deepagents): propagate
subagent `lc_agent_name` during task delegation
- Ensure `task` tool subagent invocations override
`metadata.lc_agent_name` with the selected `subagent_type`.
- Add regression coverage for both compiled subagents (`runnable`) and
standard subagent specs to verify tool-time metadata reflects the active
subagent.
- Update the `langsmith` peer dependency range in `deepagents` to
`^0.7.1`.

- [#595](https://github.com/langchain-ai/deepagentsjs/pull/595)
[`18fbb48`](https://github.com/langchain-ai/deepagentsjs/commit/18fbb4839050e98ae3cfd36ec69b11f0725ad6d6)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(deepagents): count tokens once per model call in summarization
middleware

`createSummarizationMiddleware` counted tokens twice on every model
call—once
inside `truncateArgs` and again for the should-summarize check—even when
nothing was truncated or summarized. Count once and pass the total into
`truncateArgs`; recount only when truncation actually modifies messages.

- [#242](https://github.com/langchain-ai/deepagentsjs/pull/242)
[`e3d4b53`](https://github.com/langchain-ai/deepagentsjs/commit/e3d4b5367b1825df56c919b483ec4a3e117d631f)
Thanks [@alvedder](https://github.com/alvedder)! - feat(deepagents):
support direct skill paths as sources in createSkillsMiddleware
## @deepagents/evals@0.0.13

### Patch Changes

- Updated dependencies
[[`18557db`](https://github.com/langchain-ai/deepagentsjs/commit/18557db7bbdf92052ed5f994512fb70e11989e69),
[`773cac5`](https://github.com/langchain-ai/deepagentsjs/commit/773cac5dc7efc7843dd882642d91f7d64d6fde81),
[`1ca6dc9`](https://github.com/langchain-ai/deepagentsjs/commit/1ca6dc92fd40a6d845d24b95ba14b8f2643db394),
[`03df237`](https://github.com/langchain-ai/deepagentsjs/commit/03df237385fbdfefd862076c5588eb39cb6e43c3),
[`84f3c0c`](https://github.com/langchain-ai/deepagentsjs/commit/84f3c0c2f1cad271191bcc138b84ba5b9c9205c9),
[`72cfb0c`](https://github.com/langchain-ai/deepagentsjs/commit/72cfb0c0384b30059b5e8028139a2e167c1be882),
[`04cc3fc`](https://github.com/langchain-ai/deepagentsjs/commit/04cc3fc26001ee566ed94de44c2dda2cf6adecc4),
[`18fbb48`](https://github.com/langchain-ai/deepagentsjs/commit/18fbb4839050e98ae3cfd36ec69b11f0725ad6d6),
[`e3d4b53`](https://github.com/langchain-ai/deepagentsjs/commit/e3d4b5367b1825df56c919b483ec4a3e117d631f)]:
  - deepagents@1.10.4

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-17 15:05:26 -07:00
Christian Bromann 18fbb48390 fix(deepagents): count tokens once per model call in summarization middleware (#595)
## Summary
- Port
[langchain-ai/deepagents#3877](https://github.com/langchain-ai/deepagents/pull/3877):
`createSummarizationMiddleware` now counts tokens once per model call
instead of twice on the common pass-through path.
- Pass the precomputed total into `truncateArgs` via an optional
`totalTokens` parameter; recount only when truncation modifies messages.
- Add a regression test asserting `countTokensApproximately` runs
exactly once when nothing is truncated or summarized.
2026-06-12 17:26:50 -07:00
Colin Francis 61db938149 chore(quickjs): remove configurable concurrency and add subagents option with true default (#594)
### Summary

This PR remove the configurable concurrency option from code interpreter
middleware options and adds a subagents option that is true by default
2026-06-11 16:10:15 -07:00
Colin Francis 72cfb0c038 feat(quickjs): implement default task primitive in code interpreter for programmatic subagent calling (#592)
### Summary

This PR adds a default task primitive to the code interpreter that
allows the agent to natively write code to programmatically dispatch
subagents. The task primitive supports passing response schemas for
dynamic structured output that helps with more complex orchestration
patterns.

This PR also removes the swarm task tool in favor of the task primitive.

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>
2026-06-11 15:36:01 -07:00
Colin Francis 773cac5dc7 chore(deepagents): expose createSubAgent (#591)
### Summary

Exposes `createSubAgent` as a dedicated function which allows us to
reuse the inner subagent factory outside of the middleware (e.g. using
it as the single source of truth for defining subagents in quickjs).

Port of similar implementation from
https://github.com/langchain-ai/deepagents/pull/3846
2026-06-10 17:16:05 -07:00
Colin Francis 7ee3feb674 chore(quickjs): remove skills backend and associated plumbing (#590)
### Summary

Removes skills backend and associated plumbing from code interpreter
middleware and options
2026-06-10 11:53:13 -07:00
dependabot[bot] 7c47e66601 build(deps): bump the minor-deps-updates-main group across 1 directory with 19 updates (#581)
Bumps the minor-deps-updates-main group with 19 updates in the /
directory:

| Package | From | To |
| --- | --- | --- |
|
[@changesets/changelog-github](https://github.com/changesets/changesets)
| `0.6.0` | `0.7.0` |
| [globals](https://github.com/sindresorhus/globals) | `17.5.0` |
`17.6.0` |
| [jiti](https://github.com/unjs/jiti) | `2.6.1` | `2.7.0` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) |
`0.47.0` | `0.53.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) |
`1.62.0` | `1.68.0` |
| [tsx](https://github.com/privatenumber/tsx) | `4.21.0` | `4.22.4` |
|
[@agentclientprotocol/sdk](https://github.com/agentclientprotocol/typescript-sdk)
| `0.18.2` | `0.24.0` |
|
[@langchain/langgraph](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core)
| `1.2.9` | `1.3.4` |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
| `25.6.0` | `25.9.1` |
| [tsdown](https://github.com/rolldown/tsdown) | `0.21.10` | `0.22.1` |
|
[@langchain/langgraph-sdk](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/sdk)
| `1.8.10` | `1.9.15` |
| [langchain](https://github.com/langchain-ai/langchainjs) | `1.3.5` |
`1.4.4` |
| [yaml](https://github.com/eemeli/yaml) | `2.8.3` | `2.9.0` |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) |
`1.3.28` | `1.4.0` |
| [@daytonaio/sdk](https://github.com/daytonaio/daytona) | `0.155.0` |
`0.184.0` |
| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.6.1` |
`0.7.4` |
| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) |
`8.20.0` | `8.21.0` |
|
[@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite)
| `4.2.4` | `4.3.0` |
|
[tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)
| `4.2.4` | `4.3.0` |


Updates `@changesets/changelog-github` from 0.6.0 to 0.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/changesets/changesets/releases">@​changesets/changelog-github's
releases</a>.</em></p>
<blockquote>
<h2><code>@​changesets/changelog-github</code><a
href="https://github.com/0"><code>@​0</code></a>.7.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/changesets/changesets/pull/1255">#1255</a>
<a
href="https://github.com/changesets/changesets/commit/94578cf164aa7abcb12b97dd3a55d12a324f4fe8"><code>94578cf</code></a>
Thanks <a href="https://github.com/Kauhsa"><code>@​Kauhsa</code></a>! -
Added <code>disableThanks</code> option</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/changesets/changesets/commit/d1ef2d8cc11f86042a82f0cf7b125021e24dafc4"><code>d1ef2d8</code></a>
Version Packages (<a
href="https://redirect.github.com/changesets/changesets/issues/1950">#1950</a>)</li>
<li><a
href="https://github.com/changesets/changesets/commit/7af587636b8e793cc43fc6a52d32598193fcb68e"><code>7af5876</code></a>
Restrict <code>publish</code> job to the <code>npm</code> env (<a
href="https://redirect.github.com/changesets/changesets/issues/1972">#1972</a>)</li>
<li><a
href="https://github.com/changesets/changesets/commit/ff767d2da25173bcab643826702b2af74cbf08cf"><code>ff767d2</code></a>
Sync config-file-options documentation with schema.json and source code
(<a
href="https://redirect.github.com/changesets/changesets/issues/1683">#1683</a>)</li>
<li><a
href="https://github.com/changesets/changesets/commit/951094babb7c356536c243e9cca0faa3ec86360a"><code>951094b</code></a>
fix: pin 2 unpinned action(s) (<a
href="https://redirect.github.com/changesets/changesets/issues/1915">#1915</a>)</li>
<li><a
href="https://github.com/changesets/changesets/commit/94578cf164aa7abcb12b97dd3a55d12a324f4fe8"><code>94578cf</code></a>
Added <code>disableThanks</code> option (<a
href="https://redirect.github.com/changesets/changesets/issues/1255">#1255</a>)</li>
<li><a
href="https://github.com/changesets/changesets/commit/d87334df92a36788e778b21e2bc603beb754f0d5"><code>d87334d</code></a>
Support dark mode banner in readme (<a
href="https://redirect.github.com/changesets/changesets/issues/1943">#1943</a>)</li>
<li><a
href="https://github.com/changesets/changesets/commit/87472a757062402ca121bd168d693a1be866cf45"><code>87472a7</code></a>
Update .vscode/settings.json (<a
href="https://redirect.github.com/changesets/changesets/issues/1944">#1944</a>)</li>
<li><a
href="https://github.com/changesets/changesets/commit/317a373aef2639e4ca2804f20aeb4af5338c41ca"><code>317a373</code></a>
Disable <code>publish_pr</code> job</li>
<li><a
href="https://github.com/changesets/changesets/commit/9cce6db18ddecbf7f9cded45254b9905b19a7516"><code>9cce6db</code></a>
Version Packages (<a
href="https://redirect.github.com/changesets/changesets/issues/1897">#1897</a>)</li>
<li><a
href="https://github.com/changesets/changesets/commit/d2121dc3d86b55f76de6022ccfcde843ed4b884a"><code>d2121dc</code></a>
Fix npm auth for path-based registries during publish by preserving
configure...</li>
<li>Additional commits viewable in <a
href="https://github.com/changesets/changesets/compare/@changesets/changelog-github@0.6.0...@changesets/changelog-github@0.7.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `globals` from 17.5.0 to 17.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sindresorhus/globals/releases">globals's
releases</a>.</em></p>
<blockquote>
<h2>v17.6.0</h2>
<ul>
<li>Update globals (2026-05-01) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/343">#343</a>)
00a4dd9</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/globals/compare/v17.5.0...v17.6.0">https://github.com/sindresorhus/globals/compare/v17.5.0...v17.6.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sindresorhus/globals/commit/6b15870f1c08b60b5b57afe45a703d9ed0be39bc"><code>6b15870</code></a>
17.6.0</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/00a4dd9821830a9b044798120e86b1bb1a54648d"><code>00a4dd9</code></a>
Update globals (2026-05-01) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/343">#343</a>)</li>
<li>See full diff in <a
href="https://github.com/sindresorhus/globals/compare/v17.5.0...v17.6.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `jiti` from 2.6.1 to 2.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/unjs/jiti/releases">jiti's
releases</a>.</em></p>
<blockquote>
<h2>v2.7.0</h2>
<p><a
href="https://github.com/unjs/jiti/compare/v2.6.1...v2.7.0">compare
changes</a></p>
<h3>🚀 Enhancements</h3>
<ul>
<li>Add explicit resource management (<code>using</code>/<code>await
using</code>) support (<a
href="https://redirect.github.com/unjs/jiti/pull/422">#422</a>)</li>
<li>Support opt-in <code>tsconfigPaths</code> (<a
href="https://redirect.github.com/unjs/jiti/pull/427">#427</a>)</li>
<li>Support virtual modules (<a
href="https://redirect.github.com/unjs/jiti/pull/428">#428</a>)</li>
<li>Add <code>jiti/static</code> subpath (<a
href="https://redirect.github.com/unjs/jiti/pull/430">#430</a>)</li>
</ul>
<h3>🔥 Performance</h3>
<ul>
<li><strong>interopDefault:</strong> Add caching to reduce proxy
overhead by ~2x (<a
href="https://redirect.github.com/unjs/jiti/pull/421">#421</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>require:</strong> Passthrough resolve options (<a
href="https://redirect.github.com/unjs/jiti/pull/412">#412</a>)</li>
<li><strong>require:</strong> Fallback to transpilation when
<code>tryNative</code> fails (<a
href="https://redirect.github.com/unjs/jiti/pull/413">#413</a>)</li>
<li>Fallback for <code>ENAMETOOLONG</code> when evaluating esm (<a
href="https://redirect.github.com/unjs/jiti/pull/429">#429</a>)</li>
</ul>
<h3>📦 Build</h3>
<ul>
<li>Upgrade rspack to v2 (<a
href="https://github.com/unjs/jiti/commit/55194fb">55194fb</a>)</li>
<li>Experimental rolldown config (<a
href="https://github.com/unjs/jiti/commit/8c0243f">8c0243f</a>)</li>
</ul>
<h3> Tests</h3>
<ul>
<li>Ignore jsx test for bun/cjs (<a
href="https://github.com/unjs/jiti/commit/3a744ca">3a744ca</a>)</li>
</ul>
<h3>❤️ Contributors</h3>
<ul>
<li>Pooya Parsa (<a
href="https://github.com/pi0"><code>@​pi0</code></a>)</li>
<li>Kricsleo (<a
href="https://github.com/kricsleo"><code>@​kricsleo</code></a>)</li>
<li>Espen Hovlandsdal (<a
href="https://github.com/rexxars"><code>@​rexxars</code></a>)</li>
<li>Rintaro Itokawa (<a
href="https://github.com/re-taro"><code>@​re-taro</code></a>)</li>
<li>Matteo Collina (<a
href="https://github.com/mcollina"><code>@​mcollina</code></a>)</li>
<li>Mario Zechner (<a
href="https://github.com/badlogic"><code>@​badlogic</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/unjs/jiti/blob/main/CHANGELOG.md">jiti's
changelog</a>.</em></p>
<blockquote>
<h2>v2.7.0</h2>
<p><a
href="https://github.com/unjs/jiti/compare/v2.6.1...v2.7.0">compare
changes</a></p>
<h3>🚀 Enhancements</h3>
<ul>
<li>Add explicit resource management (using/await using) support (<a
href="https://redirect.github.com/unjs/jiti/pull/422">#422</a>)</li>
<li>Support opt-in <code>tsconfigPaths</code> (<a
href="https://redirect.github.com/unjs/jiti/pull/427">#427</a>)</li>
<li>Support virtual modules option (<a
href="https://redirect.github.com/unjs/jiti/pull/428">#428</a>)</li>
<li>Add <code>jiti/static</code> export (<a
href="https://redirect.github.com/unjs/jiti/pull/430">#430</a>)</li>
</ul>
<h3>🔥 Performance</h3>
<ul>
<li><strong>interopDefault:</strong> Add caching to reduce proxy
overhead by ~2x (<a
href="https://redirect.github.com/unjs/jiti/pull/421">#421</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>require:</strong> Passthrough resolve options (<a
href="https://redirect.github.com/unjs/jiti/pull/412">#412</a>)</li>
<li><strong>ci:</strong> Skip <code>--coverage</code> flag for node 18
(<a href="https://github.com/unjs/jiti/commit/fe264b4">fe264b4</a>)</li>
<li><strong>require:</strong> Fallback to transpilation when
<code>tryNative</code> fails (<a
href="https://redirect.github.com/unjs/jiti/pull/413">#413</a>)</li>
<li>Fallback for <code>ENAMETOOLONG</code> when evaluating esm (<a
href="https://redirect.github.com/unjs/jiti/pull/429">#429</a>)</li>
</ul>
<h3>📦 Build</h3>
<ul>
<li>Upgrade rspack (<a
href="https://github.com/unjs/jiti/commit/55194fb">55194fb</a>)</li>
<li>Experimental rolldown config (<a
href="https://github.com/unjs/jiti/commit/8c0243f">8c0243f</a>)</li>
</ul>
<h3>🏡 Chore</h3>
<ul>
<li>Fix lint issues (<a
href="https://github.com/unjs/jiti/commit/4045c7a">4045c7a</a>)</li>
<li>Update deps (<a
href="https://github.com/unjs/jiti/commit/e88ac44">e88ac44</a>)</li>
<li>Update deps (<a
href="https://github.com/unjs/jiti/commit/498e8d7">498e8d7</a>)</li>
<li>Add missing prettier dep (<a
href="https://github.com/unjs/jiti/commit/650bc48">650bc48</a>)</li>
<li>Lint (<a
href="https://github.com/unjs/jiti/commit/058d91a">058d91a</a>)</li>
<li>Init agents.md (<a
href="https://github.com/unjs/jiti/commit/c49c54e">c49c54e</a>)</li>
<li>Update agents.md (<a
href="https://github.com/unjs/jiti/commit/4deba16">4deba16</a>)</li>
<li>Update deps (<a
href="https://github.com/unjs/jiti/commit/08fc868">08fc868</a>)</li>
<li>Update tsconfig (<a
href="https://github.com/unjs/jiti/commit/8c7822e">8c7822e</a>)</li>
<li>Update release script (<a
href="https://github.com/unjs/jiti/commit/27fe3f2">27fe3f2</a>)</li>
</ul>
<h3> Tests</h3>
<ul>
<li>Ignore jsx test for bun/cjs (<a
href="https://github.com/unjs/jiti/commit/3a744ca">3a744ca</a>)</li>
<li>Update (<a
href="https://github.com/unjs/jiti/commit/9ee314f">9ee314f</a>)</li>
</ul>
<h3>🤖 CI</h3>
<ul>
<li>Update node test matrix (<a
href="https://github.com/unjs/jiti/commit/0abda72">0abda72</a>)</li>
</ul>
<h3>❤️ Contributors</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/unjs/jiti/commit/fd3bb289b75ed207edfb686d671ed50144f7e90f"><code>fd3bb28</code></a>
chore(release): v2.7.0</li>
<li><a
href="https://github.com/unjs/jiti/commit/27fe3f2a496b712674061c767f21ceaf34d39d83"><code>27fe3f2</code></a>
chore: update release script</li>
<li><a
href="https://github.com/unjs/jiti/commit/4fcd2f23aa31d2e1ece4b307350b8c1d72a26870"><code>4fcd2f2</code></a>
fix: fallback for <code>ENAMETOOLONG</code> when evaluating esm (<a
href="https://redirect.github.com/unjs/jiti/issues/429">#429</a>)</li>
<li><a
href="https://github.com/unjs/jiti/commit/8c0243f14e65193fceb023b81aed5c9a820ee2cb"><code>8c0243f</code></a>
build: experimental rolldown config</li>
<li><a
href="https://github.com/unjs/jiti/commit/55194fbb97b56af50ae1c19735ee3b06110b3903"><code>55194fb</code></a>
build: upgrade rspack</li>
<li><a
href="https://github.com/unjs/jiti/commit/0abda72c11fa31654ae17f255f9a854e4b706018"><code>0abda72</code></a>
ci: update node test matrix</li>
<li><a
href="https://github.com/unjs/jiti/commit/8c7822ef2ff03669c31de2fedfcf6676970f5b2a"><code>8c7822e</code></a>
chore: update tsconfig</li>
<li><a
href="https://github.com/unjs/jiti/commit/08fc868c928d65fb615800e51b0ec1ac78f83a69"><code>08fc868</code></a>
chore: update deps</li>
<li><a
href="https://github.com/unjs/jiti/commit/5d552e3bebf9ffcd3fb9f176364fce7b4e35134d"><code>5d552e3</code></a>
feat: add <code>jiti/static</code> export (<a
href="https://redirect.github.com/unjs/jiti/issues/430">#430</a>)</li>
<li><a
href="https://github.com/unjs/jiti/commit/ae790b0214512857e40e8b3078b63a7d65f7f2c9"><code>ae790b0</code></a>
feat: support virtual modules option (<a
href="https://redirect.github.com/unjs/jiti/issues/428">#428</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/unjs/jiti/compare/v2.6.1...v2.7.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxfmt` from 0.47.0 to 0.53.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/964a7580840f394d67c149ea083e35a1e74c128f"><code>964a758</code></a>
release(apps): oxlint v1.68.0 &amp;&amp; oxfmt v0.53.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22883">#22883</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/68b455d84f0b18bd6646cfe4f9babb12ec4fc448"><code>68b455d</code></a>
release(apps): oxlint v1.67.0 &amp;&amp; oxfmt v0.52.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22735">#22735</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/16b8058cd6fd55472cb3a225852ca22db24bb461"><code>16b8058</code></a>
feat(oxfmt): Support <code>vite-plus/resolveConfig</code> for
vite.config.ts (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22454">#22454</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/557020642e27b948e46f73754b82bee452a82f32"><code>5570206</code></a>
release(apps): oxlint v1.66.0 &amp;&amp; oxfmt v0.51.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22528">#22528</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/25e5cbc76f887cf5c0c2bdfbef8d4a74fd1ce87d"><code>25e5cbc</code></a>
release(apps): oxlint v1.65.0 &amp;&amp; oxfmt v0.50.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22458">#22458</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/43b997847b76bfbc35e83738296330a9a33de4e4"><code>43b9978</code></a>
fix(formatter/sort_imports): Treat subpath imports as internal (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22440">#22440</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/d652a556196178515a3c1ea6d25a832c74961d02"><code>d652a55</code></a>
release(apps): oxlint v1.64.0 &amp;&amp; oxfmt v0.49.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22318">#22318</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/6e8e8185c0a3d653bb90dff051ec7d4558793752"><code>6e8e818</code></a>
feat(oxfmt): Experimental .svelte support (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/21700">#21700</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/330fe31f826b7d4ae11ae49ba50e2b2ab2bdc6f1"><code>330fe31</code></a>
refactor(config): Update doc comment for <code>GlobSet</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22197">#22197</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/fb3067ca2bafbbf7d75b058788202dc16d994f3e"><code>fb3067c</code></a>
refactor(oxfmt): use shared GlobSet for overrides (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt/issues/22147">#22147</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/oxc-project/oxc/commits/oxfmt_v0.53.0/npm/oxfmt">compare
view</a></li>
</ul>
</details>
<br />

Updates `oxlint` from 1.62.0 to 1.68.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/releases">oxlint's
releases</a>.</em></p>
<blockquote>
<h2>oxlint v1.27.0 &amp;&amp; oxfmt v0.12.0</h2>
<h1>Oxlint v1.27.0</h1>
<h3>🚀 Features</h3>
<ul>
<li>222a8f0 linter/plugins: Implement
<code>SourceCode#isSpaceBetween</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15498">#15498</a>)
(overlookmotel)</li>
<li>2f9735d linter/plugins: Implement
<code>context.languageOptions</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15486">#15486</a>)
(overlookmotel)</li>
<li>bc731ff linter/plugins: Stub out all <code>Context</code> APIs (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15479">#15479</a>)
(overlookmotel)</li>
<li>5822cb4 linter/plugins: Add <code>extend</code> method to
<code>FILE_CONTEXT</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15477">#15477</a>)
(overlookmotel)</li>
<li>7b1e6f3 apps: Add pure rust binaries and release to github (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15469">#15469</a>)
(Boshen)</li>
<li>2a89b43 linter: Introduce debug assertions after fixes to assert
validity (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15389">#15389</a>)
(camc314)</li>
<li>ad3c45a editor: Add <code>oxc.path.node</code> option (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15040">#15040</a>)
(Sysix)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>6f3cd77 linter/no-var: Incorrect warning for blocks (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15504">#15504</a>)
(Hamir Mahal)</li>
<li>6957fb9 linter/plugins: Do not allow access to
<code>Context#id</code> in <code>createOnce</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15489">#15489</a>)
(overlookmotel)</li>
<li>7409630 linter/plugins: Allow access to <code>cwd</code> in
<code>createOnce</code> in ESLint interop mode (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15488">#15488</a>)
(overlookmotel)</li>
<li>732205e parser: Reject <code>using</code> / <code>await using</code>
in a switch <code>case</code> / <code>default</code> clause (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15225">#15225</a>)
(sapphi-red)</li>
<li>a17ca32 linter/plugins: Replace <code>Context</code> class (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15448">#15448</a>)
(overlookmotel)</li>
<li>ecf2f7b language_server: Fail gracefully when tsgolint executable
not found (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15436">#15436</a>)
(camc314)</li>
<li>3c8d3a7 lang-server: Improve logging in failure case for tsgolint
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15299">#15299</a>)
(camc314)</li>
<li>ef71410 linter: Use jsx if source type is JS in fix debug assertion
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15434">#15434</a>)
(camc314)</li>
<li>e32bbf6 linter/no-var: Handle TypeScript declare keyword in fixer
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15426">#15426</a>)
(camc314)</li>
<li>6565dbe linter/switch-case-braces: Skip comments when searching for
<code>:</code> token (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15425">#15425</a>)
(camc314)</li>
<li>85bd19a linter/prefer-class-fields: Insert value after type
annotation in fixer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15423">#15423</a>)
(camc314)</li>
<li>fde753e linter/plugins: Block access to
<code>context.settings</code> in <code>createOnce</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15394">#15394</a>)
(overlookmotel)</li>
<li>ddd9f9f linter/forward-ref-uses-ref: Dont suggest removing wrapper
in invalid positions (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15388">#15388</a>)
(camc314)</li>
<li>dac2a9c linter/no-template-curly-in-string: Remove fixer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15387">#15387</a>)
(camc314)</li>
<li>989b8e3 linter/no-var: Only fix to <code>const</code> if the var has
an initializer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15385">#15385</a>)
(camc314)</li>
<li>cc403f5 linter/plugins: Return empty object for unimplemented
parserServices (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15364">#15364</a>)
(magic-akari)</li>
</ul>
<h3> Performance</h3>
<ul>
<li>25d577e language_server: Start tools in parallel (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15500">#15500</a>)
(Sysix)</li>
<li>3c57291 linter/plugins: Optimize loops (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15449">#15449</a>)
(overlookmotel)</li>
<li>3166233 linter/plugins: Remove <code>Arc</code>s (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15431">#15431</a>)
(overlookmotel)</li>
<li>9de1322 linter/plugins: Lazily deserialize settings JSON (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15395">#15395</a>)
(overlookmotel)</li>
<li>3049ec2 linter/plugins: Optimize <code>deepFreezeSettings</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15392">#15392</a>)
(overlookmotel)</li>
<li>444ebfd linter/plugins: Use single object for
<code>parserServices</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15378">#15378</a>)
(overlookmotel)</li>
</ul>
<h3>📚 Documentation</h3>
<ul>
<li>97d2104 linter: Update comment in lint.rs about default value for
tsconfig path (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15530">#15530</a>)
(Connor Shea)</li>
<li>2c6bd9e linter: Always refer as &quot;ES2015&quot; instead of
&quot;ES6&quot; (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15411">#15411</a>)
(sapphi-red)</li>
<li>a0c5203 linter/import/named: Update &quot;ES7&quot; comment in
examples (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15410">#15410</a>)
(sapphi-red)</li>
<li>3dc24b5 linter,minifier: Always refer as &quot;ES Modules&quot;
instead of &quot;ES6 Modules&quot; (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15409">#15409</a>)
(sapphi-red)</li>
<li>2ad77fb linter/no-this-before-super: Correct &quot;Why is this
bad?&quot; section (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15408">#15408</a>)
(sapphi-red)</li>
<li>57f0ce1 linter: Add backquotes where appropriate (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15407">#15407</a>)
(sapphi-red)</li>
</ul>
<h1>Oxfmt v0.12.0</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md">oxlint's
changelog</a>.</em></p>
<blockquote>
<h2>[1.68.0] - 2026-06-01</h2>
<h3>🚀 Features</h3>
<ul>
<li>e4b1f46 linter/typescript: Implement
<code>method-signature-style</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22679">#22679</a>)
(Mikhail Baev)</li>
<li>bc462ca linter/vue: Implement no-reserved-component-names rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22741">#22741</a>)
(bab)</li>
<li>ef9e751 linter/vue: Implement component-definition-name-casing rule
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22818">#22818</a>)
(bab)</li>
<li>d67f51a linter/vue: Implement require-prop-type-constructor rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22708">#22708</a>)
(bab)</li>
<li>8422e8b linter/jsdoc: Implement
<code>require-yields-description</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22805">#22805</a>)
(Mikhail Baev)</li>
<li>fe93f97 linter/eslint: Implement
<code>prefer-named-capture-group</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22759">#22759</a>)
(Sebastian Poxhofer)</li>
</ul>
<h2>[1.67.0] - 2026-05-26</h2>
<h3>🚀 Features</h3>
<ul>
<li>b84941e linter/vue: Implement no-expose-after-await rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22675">#22675</a>)
(bab)</li>
<li>98b98c1 linter/vue: Implement no-computed-properties-in-data rule
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22674">#22674</a>)
(bab)</li>
<li>2d4c919 oxlint: Support <code>vite-plus/resolveConfig</code> for
vite.config.ts (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22456">#22456</a>)
(leaysgur)</li>
<li>2a60012 linter/vue: Implement require-render-return rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22613">#22613</a>)
(bab)</li>
<li>9f227fd linter/vue: Implement no-deprecated-props-default-this rule
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/21892">#21892</a>)
(bab)</li>
<li>87f065e linter/vue: Implement return-in-emits-validator rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/21935">#21935</a>)
(bab)</li>
<li>ea0380c linter/unicorn: Implement <code>import-style</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22173">#22173</a>)
(Hao Chen)</li>
<li>dde40fe linter/vue: Implement no-watch-after-await rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22006">#22006</a>)
(bab)</li>
<li>a735eb0 linter/vue: Implement valid-next-tick rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22531">#22531</a>)
(bab)</li>
<li>6dc615d linter/vue: Implement no-shared-component-data rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/21842">#21842</a>)
(bab)</li>
<li>a656418 linter/vue: Implement valid-define-options rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22107">#22107</a>)
(bab)</li>
<li>bb6f1b2 linter/vue: Implement require-slots-as-functions rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22244">#22244</a>)
(bab)</li>
<li>5fa4774 linter/n: Implement <code>callback-return</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22470">#22470</a>)
(Mikhail Baev)</li>
</ul>
<h2>[1.66.0] - 2026-05-18</h2>
<h3>🚀 Features</h3>
<ul>
<li>0440b0f linter/eslint: Implement <code>id-match</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22379">#22379</a>)
(Vladislav Sayapin)</li>
<li>65bf119 linter: Implement react no-object-type-as-default-prop (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22481">#22481</a>)
(uhyo)</li>
<li>2a6ddce linter/eslint: Implement <code>no-implied-eval</code> rule
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22391">#22391</a>)
(Vladislav Sayapin)</li>
<li>625758a linter/vitest: Implement padding-around-after-all-blocks
rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/21788">#21788</a>)
(kapobajza)</li>
<li>37680b0 linter: Implement react no-unstable-nested-components (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22248">#22248</a>)
(Jovi De Croock)</li>
<li>d8d9c74 linter: Implement import/newline-after-import rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19142">#19142</a>)
(Ryuya Yanagi)</li>
</ul>
<h2>[1.65.0] - 2026-05-15</h2>
<h3>🚀 Features</h3>
<ul>
<li>5478fb5 linter/jsdoc: Implement
<code>require-throws-description</code> rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22386">#22386</a>)
(Mikhail Baev)</li>
<li>c73225e linter/eslint: Implement <code>prefer-arrow-callback</code>
rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22312">#22312</a>)
(박천(Cheon Park))</li>
<li>de82b59 linter: Add support for
<code>eslint-plugin-jsx-a11y-x</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22356">#22356</a>)
(mehm8128)</li>
<li>f44b6c8 linter: Fill schemas <code>DummyRuleMap</code> with built-in
rules (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22288">#22288</a>)
(Sysix)</li>
</ul>
<h2>[1.64.0] - 2026-05-11</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/964a7580840f394d67c149ea083e35a1e74c128f"><code>964a758</code></a>
release(apps): oxlint v1.68.0 &amp;&amp; oxfmt v0.53.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22883">#22883</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/3f05c5e1267c25daa1c90babd84427f59acf96be"><code>3f05c5e</code></a>
feat(linter): expose <code>override::exclude_files</code> option (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22884">#22884</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/e4b1f46bec95da661af72f513e769d729ff605c6"><code>e4b1f46</code></a>
feat(linter/typescript): implement <code>method-signature-style</code>
rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22679">#22679</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/bc462ca5a778c246d6185d9b8d2cbdf3919ed527"><code>bc462ca</code></a>
feat(linter/vue): implement no-reserved-component-names rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22741">#22741</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/ef9e75170dca39091e4aa8360f7d59dc5aa206eb"><code>ef9e751</code></a>
feat(linter/vue): implement component-definition-name-casing rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22818">#22818</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/d67f51aba16939ce33b21c7504e177a9ff1c6887"><code>d67f51a</code></a>
feat(linter/vue): implement require-prop-type-constructor rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22708">#22708</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/8422e8bc44db47033ce516f9375867624e265823"><code>8422e8b</code></a>
feat(linter/jsdoc): implement <code>require-yields-description</code>
rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22805">#22805</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/fe93f9718ac09bab79286eb6dbc90ad14f8270bd"><code>fe93f97</code></a>
feat(linter/eslint): implement <code>prefer-named-capture-group</code>
rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22759">#22759</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/68b455d84f0b18bd6646cfe4f9babb12ec4fc448"><code>68b455d</code></a>
release(apps): oxlint v1.67.0 &amp;&amp; oxfmt v0.52.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22735">#22735</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/b84941e69e2e630e998fe6b1e90b0506608f7caa"><code>b84941e</code></a>
feat(linter/vue): implement no-expose-after-await rule (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/22675">#22675</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/oxc-project/oxc/commits/oxlint_v1.68.0/npm/oxlint">compare
view</a></li>
</ul>
</details>
<br />

Updates `tsx` from 4.21.0 to 4.22.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/privatenumber/tsx/releases">tsx's
releases</a>.</em></p>
<blockquote>
<h2>v4.22.4</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.22.3...v4.22.4">4.22.4</a>
(2026-05-31)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>resolve CommonJS directory requires inside dependencies (<a
href="https://redirect.github.com/privatenumber/tsx/issues/803">#803</a>)
(<a
href="https://github.com/privatenumber/tsx/commit/1ce846335b7c445a3328c7d27f06424949356d97">1ce8463</a>)</li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.22.4"><code>npm
package (@​latest dist-tag)</code></a></li>
</ul>
<h2>v4.22.3</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.22.2...v4.22.3">4.22.3</a>
(2026-05-19)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>decode typed loader source (<a
href="https://github.com/privatenumber/tsx/commit/dce02fc3b8b64a58d24560714902b16f89332f1f">dce02fc</a>)</li>
<li>preserve entrypoint with TypeScript preload hooks (<a
href="https://github.com/privatenumber/tsx/commit/68f72f3304d8c3ff7048bde8571af9c163fcefa2">68f72f3</a>)</li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.22.3"><code>npm
package (@​latest dist-tag)</code></a></li>
</ul>
<h2>v4.22.2</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.22.1...v4.22.2">4.22.2</a>
(2026-05-18)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>preserve CJS JSON require in ESM hooks (<a
href="https://github.com/privatenumber/tsx/commit/35b700bd8620696df03827068af29dcd0d091a60">35b700b</a>)</li>
<li>preserve named exports from CommonJS TypeScript (<a
href="https://github.com/privatenumber/tsx/commit/11de737dae1fb9dae28db3716df5b1a7e1a6a089">11de737</a>)</li>
<li>support module.exports require(esm) interop (<a
href="https://github.com/privatenumber/tsx/commit/cf8f19918e4e0a0dc5ee5c52d8cc15e5e22d7c49">cf8f199</a>)</li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.22.2"><code>npm
package (@​latest dist-tag)</code></a></li>
</ul>
<h2>v4.22.1</h2>
<h2><a
href="https://github.com/privatenumber/tsx/compare/v4.22.0...v4.22.1">4.22.1</a>
(2026-05-17)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>resolve tsconfig path aliases containing a colon (<a
href="https://redirect.github.com/privatenumber/tsx/issues/780">#780</a>)
(<a
href="https://github.com/privatenumber/tsx/commit/6979f28810829dc79ec9baf406e162a18b65ab4b">6979f28</a>)</li>
</ul>
<hr />
<p>This release is also available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/tsx/v/4.22.1"><code>npm
package (@​latest dist-tag)</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/privatenumber/tsx/commit/1ce846335b7c445a3328c7d27f06424949356d97"><code>1ce8463</code></a>
fix: resolve CommonJS directory requires inside dependencies (<a
href="https://redirect.github.com/privatenumber/tsx/issues/803">#803</a>)</li>
<li><a
href="https://github.com/privatenumber/tsx/commit/dce02fc3b8b64a58d24560714902b16f89332f1f"><code>dce02fc</code></a>
fix: decode typed loader source</li>
<li><a
href="https://github.com/privatenumber/tsx/commit/68f72f3304d8c3ff7048bde8571af9c163fcefa2"><code>68f72f3</code></a>
fix: preserve entrypoint with TypeScript preload hooks</li>
<li><a
href="https://github.com/privatenumber/tsx/commit/69455cfefbfe71100a3c58d3ce7cea42445d9113"><code>69455cf</code></a>
test: cover package exports for ambiguous ESM reexports</li>
<li><a
href="https://github.com/privatenumber/tsx/commit/35b700bd8620696df03827068af29dcd0d091a60"><code>35b700b</code></a>
fix: preserve CJS JSON require in ESM hooks</li>
<li><a
href="https://github.com/privatenumber/tsx/commit/ef807dba6832260fb4cafd78d81f5469a733966b"><code>ef807db</code></a>
chore: update testing dependencies</li>
<li><a
href="https://github.com/privatenumber/tsx/commit/3917090d4f61863ea6ea16e4a9a3722a112cc3f7"><code>3917090</code></a>
test: document compatibility test taxonomy</li>
<li><a
href="https://github.com/privatenumber/tsx/commit/de8113ffa8edbcd4e05fa218324c3e8c2a4afdbe"><code>de8113f</code></a>
refactor: centralize Node capability facts</li>
<li><a
href="https://github.com/privatenumber/tsx/commit/c1f62db45ada60b24ceb3dfdf7f64173d9a15396"><code>c1f62db</code></a>
test: consolidate tsconfig path edge coverage</li>
<li><a
href="https://github.com/privatenumber/tsx/commit/4e08174ec10276ac71c9a69eb28426ad702d0c76"><code>4e08174</code></a>
test: consolidate loader hook coverage</li>
<li>Additional commits viewable in <a
href="https://github.com/privatenumber/tsx/compare/v4.21.0...v4.22.4">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for tsx since your current version.</p>
</details>
<br />

Updates `@agentclientprotocol/sdk` from 0.18.2 to 0.24.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/agentclientprotocol/typescript-sdk/releases">@​agentclientprotocol/sdk's
releases</a>.</em></p>
<blockquote>
<h2>v0.24.0</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.23.0...v0.24.0">0.24.0</a>
(2026-06-02)</h2>
<h3>Features</h3>
<ul>
<li>Add resilient schema deserialization (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/167">#167</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/5864e7306e0feb0852cef9aee2a5ba53a0a7f627">5864e73</a>)</li>
<li><strong>schema:</strong> Stabilize addl dirs and remove unstable
model selectors (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/165">#165</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/fa6e30280874ccd702cc4ab7577d402d2864f619">fa6e302</a>)</li>
</ul>
<h2>v0.23.0</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.22.1...v0.23.0">0.23.0</a>
(2026-06-01)</h2>
<h3>Features</h3>
<ul>
<li><strong>schema:</strong> Stabilize logout and update schema to
v0.13.4 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/163">#163</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/cfd900a981eb00dbcdee52db2b2b38847a957328">cfd900a</a>)</li>
</ul>
<h2>v0.22.1</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.22.0...v0.22.1">0.22.1</a>
(2026-05-18)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Event ordering (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/153">#153</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/7b632266f009865d0e8e64def5cd55367363845b">7b63226</a>)</li>
</ul>
<h2>v0.22.0</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.21.1...v0.22.0">0.22.0</a>
(2026-05-18)</h2>
<h3>Features</h3>
<ul>
<li><strong>unstable:</strong> Add session delete handling (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/152">#152</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/f9384f59008298b44fd1e22e5dde3f2e922fc7ec">f9384f5</a>)</li>
<li>Update schema to v0.13.2 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/150">#150</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/b15960b74667f9a582470d58c18ebb9054e5acfd">b15960b</a>)</li>
</ul>
<h2>v0.21.1</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.21.0...v0.21.1">0.21.1</a>
(2026-05-14)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>emit .js extensions in generated schema barrel for nodenext
consumers (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/146">#146</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/63b96db49d4826c02fe4afc62a7754db1f9f9ef7">63b96db</a>)</li>
</ul>
<h2>v0.21.0</h2>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.20.0...v0.21.0">0.21.0</a>
(2026-04-28)</h2>
<h3>Features</h3>
<ul>
<li><strong>unstable:</strong> Add <code>providers/*</code> support (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/138">#138</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/e234c213d362d2cd170f8215fa0758a62a59d54e">e234c21</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/agentclientprotocol/typescript-sdk/blob/main/CHANGELOG.md">@​agentclientprotocol/sdk's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.23.0...v0.24.0">0.24.0</a>
(2026-06-02)</h2>
<h3>Features</h3>
<ul>
<li>Add resilient schema deserialization (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/167">#167</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/5864e7306e0feb0852cef9aee2a5ba53a0a7f627">5864e73</a>)</li>
<li><strong>schema:</strong> Stabilize addl dirs and remove unstable
model selectors (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/165">#165</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/fa6e30280874ccd702cc4ab7577d402d2864f619">fa6e302</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.22.1...v0.23.0">0.23.0</a>
(2026-06-01)</h2>
<h3>Features</h3>
<ul>
<li><strong>schema:</strong> Stabilize logout and update schema to
v0.13.4 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/163">#163</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/cfd900a981eb00dbcdee52db2b2b38847a957328">cfd900a</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.22.0...v0.22.1">0.22.1</a>
(2026-05-18)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Event ordering (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/153">#153</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/7b632266f009865d0e8e64def5cd55367363845b">7b63226</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.21.1...v0.22.0">0.22.0</a>
(2026-05-18)</h2>
<h3>Features</h3>
<ul>
<li><strong>unstable:</strong> Add session delete handling (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/152">#152</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/f9384f59008298b44fd1e22e5dde3f2e922fc7ec">f9384f5</a>)</li>
<li>Update schema to v0.13.2 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/150">#150</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/b15960b74667f9a582470d58c18ebb9054e5acfd">b15960b</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.21.0...v0.21.1">0.21.1</a>
(2026-05-14)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>emit .js extensions in generated schema barrel for nodenext
consumers (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/146">#146</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/63b96db49d4826c02fe4afc62a7754db1f9f9ef7">63b96db</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.20.0...v0.21.0">0.21.0</a>
(2026-04-28)</h2>
<h3>Features</h3>
<ul>
<li><strong>unstable:</strong> Add <code>providers/*</code> support (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/138">#138</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/e234c213d362d2cd170f8215fa0758a62a59d54e">e234c21</a>)</li>
</ul>
<h2><a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.19.2...v0.20.0">0.20.0</a>
(2026-04-23)</h2>
<h3>Features</h3>
<ul>
<li>Stabilize <code>closeSession</code> and <code>resumeSession</code>
(<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/132">#132</a>)
(<a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/806d307ba92e824e859075f3f72fe1e9b35b8f0b">806d307</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/8966c11c6e88da3a4adfd16f1789ff71c723c530"><code>8966c11</code></a>
chore(main): release 0.24.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/166">#166</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/5864e7306e0feb0852cef9aee2a5ba53a0a7f627"><code>5864e73</code></a>
feat: Add resilient schema deserialization (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/167">#167</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/fa6e30280874ccd702cc4ab7577d402d2864f619"><code>fa6e302</code></a>
feat(schema): Stabilize addl dirs and remove unstable model selectors
(<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/165">#165</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/0c2e622a11d49da21b8abdd76ce4cd659ba8c74f"><code>0c2e622</code></a>
chore(main): release 0.23.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/164">#164</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/cfd900a981eb00dbcdee52db2b2b38847a957328"><code>cfd900a</code></a>
feat(schema): Stabilize logout and update schema to v0.13.4 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/163">#163</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/171a253ae61a243469f4cee547e447d7a7f3ddbf"><code>171a253</code></a>
chore(deps-dev): bump concurrently from 9.2.1 to 10.0.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/162">#162</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/0ecf00184fa194f2006e19d364befb0551fb7d58"><code>0ecf001</code></a>
chore(deps): bump the minor group with 19 updates (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/161">#161</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/ca74103730cf1c68bdcf89301847aadca8cfb797"><code>ca74103</code></a>
chore(deps): bump crate-ci/typos from 1.46.2 to 1.47.0 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/160">#160</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/c6a9c9487d64e884536a6c74d1190f5243796746"><code>c6a9c94</code></a>
chore(deps): bump crate-ci/typos from 1.46.1 to 1.46.2 (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/158">#158</a>)</li>
<li><a
href="https://github.com/agentclientprotocol/typescript-sdk/commit/c7256e7c5d7c8ff8ee888f447210829996a4da78"><code>c7256e7</code></a>
chore(deps): bump the minor group with 43 updates (<a
href="https://redirect.github.com/agentclientprotocol/typescript-sdk/issues/159">#159</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/agentclientprotocol/typescript-sdk/compare/v0.18.2...v0.24.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/langgraph` from 1.2.9 to 1.3.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langgraphjs/releases">@​langchain/langgraph's
releases</a>.</em></p>
<blockquote>
<h2><code>@​langchain/langgraph</code><a
href="https://github.com/1"><code>@​1</code></a>.3.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2035">#2035</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51"><code>7c3a98b</code></a>
Thanks <a
href="https://github.com/JadenKim-dev"><code>@​JadenKim-dev</code></a>!
- fix(core): prevent Zod schema defaults from overwriting checkpoint
state in Command.update</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36"><code>0491534</code></a>]:</p>
<ul>
<li><code>@​langchain/langgraph-sdk</code><a
href="https://github.com/1"><code>@​1</code></a>.9.12</li>
</ul>
</li>
</ul>
<h2><code>@​langchain/langgraph</code><a
href="https://github.com/1"><code>@​1</code></a>.3.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2037">#2037</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f"><code>9eb478f</code></a>
Thanks <a
href="https://github.com/pawel-twardziak"><code>@​pawel-twardziak</code></a>!
- Decouple <code>ContextType</code> generic from
<code>configurable</code> in <code>PregelOptions</code> so that
providing a custom context type no longer incorrectly narrows the
configurable parameter.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2457">#2457</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999"><code>91a5494</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- fix(langgraph): pass context with stateful RemoteGraph runs</p>
<p>Pop <code>thread_id</code> from run <code>config.configurable</code>
and forward <code>context</code> to the SDK so checkpointed remote runs
accept user context without a 400 from ambiguous parameters. Closes <a
href="https://redirect.github.com/langchain-ai/langgraphjs/issues/1922">#1922</a>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/1988">#1988</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7"><code>6d4bf92</code></a>
Thanks <a href="https://github.com/Axadali"><code>@​Axadali</code></a>!
- Fix race condition in IterableReadableWritableStream.push() that
caused ERR_INVALID_STATE errors when streaming with multiple parallel
nodes and aborting the stream.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2409">#2409</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3"><code>101b70a</code></a>
Thanks <a
href="https://github.com/pragnyanramtha"><code>@​pragnyanramtha</code></a>!
- Preserve non-plain objects passed through <code>Send</code> and
<code>Command</code> argument deserialization.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2344">#2344</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842"><code>0125920</code></a>
Thanks <a
href="https://github.com/apps/dependabot"><code>@​dependabot</code></a>!
- chore(deps): bump uuid to 14.0.0 and keep checkpoint ID ordering
stable</p>
<p>Bump <code>uuid</code> from 10.x/13.x to 14.0.0 across packages.
Starting with uuid 11, <code>v6({ clockseq })</code> no longer advances
the sub-millisecond time counter when an explicit <code>clockseq</code>
is passed, so checkpoint IDs created within the same millisecond were
ordered only by <code>clockseq</code>. Since checkpoint IDs are sorted
lexicographically, this broke ordering — most visibly for the negative
<code>clockseq</code> used by the first (&quot;input&quot;) checkpoint,
which sorted as the newest.</p>
<p><code>uuid6()</code> now maintains its own monotonic <code>(msecs,
nsecs)</code> clock (mirroring uuid 10's internal v1 behavior) so the
time component is always strictly increasing and checkpoint ordering no
longer depends on the <code>clockseq</code> value.
<code>emptyCheckpoint()</code> also uses a non-negative
<code>clockseq</code>.</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856"><code>863b555</code></a>,
<a
href="https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842"><code>0125920</code></a>]:</p>
<ul>
<li><code>@​langchain/langgraph-sdk</code><a
href="https://github.com/1"><code>@​1</code></a>.9.11</li>
<li><code>@​langchain/langgraph-checkpoint</code><a
href="https://github.com/1"><code>@​1</code></a>.0.4</li>
</ul>
</li>
</ul>
<h2><code>@​langchain/langgraph-checkpoint-mongodb</code><a
href="https://github.com/1"><code>@​1</code></a>.3.3</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2260">#2260</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/4d03dcbc28bbfdf4c0f0ac065b9853652836d2f9"><code>4d03dcb</code></a>
Thanks <a
href="https://github.com/venkat22022202"><code>@​venkat22022202</code></a>!
- fix(mongodb): include pendingWrites in list() results</li>
</ul>
<h2><code>@​langchain/langgraph</code><a
href="https://github.com/1"><code>@​1</code></a>.3.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2415">#2415</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/9d3c9dd3182059f9eca9fd9b14d8f7466b4338c4"><code>9d3c9dd</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- Move <code>@langchain/core</code> from a runtime dependency back to a
required peer dependency so installing the SDK alone no longer pulls in
<code>@langchain/core</code> (and <code>js-tiktoken</code>, etc.).
Consumers that use streaming or message coercion must install
<code>@langchain/core</code> explicitly or via
<code>@langchain/langgraph</code>.</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/langchain-ai/langgraphjs/commit/9d3c9dd3182059f9eca9fd9b14d8f7466b4338c4"><code>9d3c9dd</code></a>]:</p>
<ul>
<li><code>@​langchain/langgraph-sdk</code><a
href="https://github.com/1"><code>@​1</code></a>.9.4</li>
</ul>
</li>
</ul>
<h2><code>@​langchain/langgraph-checkpoint-mongodb</code><a
href="https://github.com/1"><code>@​1</code></a>.3.2</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2186">#2186</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/26c2e325f435a2c061d6b78a7bd6af089cb1e0e6"><code>26c2e32</code></a>
Thanks <a
href="https://github.com/jackjin1997"><code>@​jackjin1997</code></a>! -
fix: metadata filter in list() now works by querying a plain JSON shadow
copy instead of the serialized binary blob</li>
</ul>
<h2><code>@​langchain/langgraph</code><a
href="https://github.com/1"><code>@​1</code></a>.3.1</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langgraphjs/blob/main/libs/langgraph-core/CHANGELOG.md">@​langchain/langgraph's
changelog</a>.</em></p>
<blockquote>
<h2>1.3.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2035">#2035</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51"><code>7c3a98b</code></a>
Thanks <a
href="https://github.com/JadenKim-dev"><code>@​JadenKim-dev</code></a>!
- fix(core): prevent Zod schema defaults from overwriting checkpoint
state in Command.update</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36"><code>0491534</code></a>]:</p>
<ul>
<li><code>@​langchain/langgraph-sdk</code><a
href="https://github.com/1"><code>@​1</code></a>.9.12</li>
</ul>
</li>
</ul>
<h2>1.3.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2037">#2037</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f"><code>9eb478f</code></a>
Thanks <a
href="https://github.com/pawel-twardziak"><code>@​pawel-twardziak</code></a>!
- Decouple <code>ContextType</code> generic from
<code>configurable</code> in <code>PregelOptions</code> so that
providing a custom context type no longer incorrectly narrows the
configurable parameter.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2457">#2457</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999"><code>91a5494</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- fix(langgraph): pass context with stateful RemoteGraph runs</p>
<p>Pop <code>thread_id</code> from run <code>config.configurable</code>
and forward <code>context</code> to the SDK so checkpointed remote runs
accept user context without a 400 from ambiguous parameters. Closes <a
href="https://redirect.github.com/langchain-ai/langgraphjs/issues/1922">#1922</a>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/1988">#1988</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7"><code>6d4bf92</code></a>
Thanks <a href="https://github.com/Axadali"><code>@​Axadali</code></a>!
- Fix race condition in IterableReadableWritableStream.push() that
caused ERR_INVALID_STATE errors when streaming with multiple parallel
nodes and aborting the stream.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2409">#2409</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3"><code>101b70a</code></a>
Thanks <a
href="https://github.com/pragnyanramtha"><code>@​pragnyanramtha</code></a>!
- Preserve non-plain objects passed through <code>Send</code> and
<code>Command</code> argument deserialization.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2344">#2344</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842"><code>0125920</code></a>
Thanks <a
href="https://github.com/apps/dependabot"><code>@​dependabot</code></a>!
- chore(deps): bump uuid to 14.0.0 and keep checkpoint ID ordering
stable</p>
<p>Bump <code>uuid</code> from 10.x/13.x to 14.0.0 across packages.
Starting with uuid 11, <code>v6({ clockseq })</code> no longer advances
the sub-millisecond time counter when an explicit <code>clockseq</code>
is passed, so checkpoint IDs created within the same millisecond were
ordered only by <code>clockseq</code>. Since checkpoint IDs are sorted
lexicographically, this broke ordering — most visibly for the negative
<code>clockseq</code> used by the first (&quot;input&quot;) checkpoint,
which sorted as the newest.</p>
<p><code>uuid6()</code> now maintains its own monotonic <code>(msecs,
nsecs)</code> clock (mirroring uuid 10's internal v1 behavior) so the
time component is always strictly increasing and checkpoint ordering no
longer depends on the <code>clockseq</code> value.
<code>emptyCheckpoint()</code> also uses a non-negative
<code>clockseq</code>.</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856"><code>863b555</code></a>,
<a
href="https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842"><code>0125920</code></a>]:</p>
<ul>
<li><code>@​langchain/langgraph-sdk</code><a
href="https://github.com/1"><code>@​1</code></a>.9.11</li>
<li><code>@​langchain/langgraph-checkpoint</code><a
href="https://github.com/1"><code>@​1</code></a>.0.4</li>
</ul>
</li>
</ul>
<h2>1.3.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2415">#2415</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/9d3c9dd3182059f9eca9fd9b14d8f7466b4338c4"><code>9d3c9dd</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- Move <code>@langchain/core</code> from a runtime dependency back to a
required peer dependency so installing the SDK alone no longer pulls in
<code>@langchain/core</code> (and <code>js-tiktoken</code>, etc.).
Consumers that use streaming or message coercion must install
<code>@langchain/core</code> explicitly or via
<code>@langchain/langgraph</code>.</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/langchain-ai/langgraphjs/commit/9d3c9dd3182059f9eca9fd9b14d8f7466b4338c4"><code>9d3c9dd</code></a>]:</p>
<ul>
<li><code>@​langchain/langgraph-sdk</code><a
href="https://github.com/1"><code>@​1</code></a>.9.4</li>
</ul>
</li>
</ul>
<h2>1.3.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2339">#2339</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/2b88da497b2c6f8fbf8f4d901578a198824eb32f"><code>2b88da4</code></a>
Thanks <a
href="https://github.com/vigneshpatel14"><code>@​vigneshpatel14</code></a>!
- fix(langgraph): surface structuredResponse parse failures in
createReactAgent</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langgraphjs/pull/2406">#2406</a>
<a
href="https://github.com/langchain-ai/langgraphjs/commit/e54ae901e119ccf81653b90d5a0db2485027a5a9"><code>e54ae90</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- fix(langgraph-core): keep tool results out of v3 message streams</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/c6b29fb040963e3dcedb7e98ee3a3e3a728e5f82"><code>c6b29fb</code></a>
chore: version packages (<a
href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2465">#2465</a>)</li>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51"><code>7c3a98b</code></a>
fix(core): prevent Zod schema defaults from overwriting checkpoint state
in C...</li>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/d2ca90f8e2cfbba547a9645d81e7c5340d1e7ebf"><code>d2ca90f</code></a>
chore: version packages (<a
href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2453">#2453</a>)</li>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3"><code>101b70a</code></a>
fix: preserve non-plain Send args (<a
href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2409">#2409</a>)</li>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842"><code>0125920</code></a>
chore(deps): bump uuid from 10.0.0 to 14.0.0 (<a
href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2344">#2344</a>)</li>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999"><code>91a5494</code></a>
fix(langgraph): pass context with stateful RemoteGraph runs (<a
href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2457">#2457</a>)</li>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7"><code>6d4bf92</code></a>
fix(langgraph): StreamMessagesHandler throws &quot;Controller is already
closed&quot; e...</li>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/c5dcbd176dba4d7b76b8e2c27b4bc0ed0a9109ac"><code>c5dcbd1</code></a>
fix(langgraph): handle null thread checkpoint in RemoteGraph.getState
(<a
href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2331">#2331</a>)</li>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f"><code>9eb478f</code></a>
fix(langgraph): decouple ContextType from configurable in PregelOptions
(<a
href="https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core/issues/2037">#2037</a>)</li>
<li><a
href="https://github.com/langchain-ai/langgraphjs/commit/4d12fe0233aa1283c1d7aa1790a7015df9856f66"><code>4d12fe0</code></a>
docs: more readme cleanups</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langgraphjs/commits/@langchain/langgraph@1.3.4/libs/langgraph-core">co...

_Description has been truncated_

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com>
2026-06-08 14:41:48 -07:00
Alexei Vedernikov e3d4b5367b feat(deepagents): support direct skill paths as sources in createSkillsMiddleware (#242)
## Description

Previously, sources had to be parent directories (e.g. `/skills/`) whose
subdirectories each contained a SKILL.md. Passing a direct skill path
(e.g. `/skills/my-skill/`) had no effect because `listSkillsFromBackend`
scanned for subdirectories inside the source, found none, and returned
an empty list.

## Real case

The motivating scenario is when a curated list of skills organised as
individual directories under a shared directory. Each skill has a clear
responsibility, and different skills are intentionally assigned to the
orchestrator agent vs. subagents:

```typescript
// Desired: pass individual skill paths — one per capability
const SHARED_SKILLS = ['/skills/web-research/'];

const ORCHESTRATOR_SKILLS = [
  '/skills/requirement-completeness-validator/',
  '/skills/diff-risk-analyzer/',
];

createDeepAgent({
  skills: [...SHARED_SKILLS, ...ORCHESTRATOR_SKILLS],
  subagents: subagentsConfig.map(agentConfig => ({
    skills: [
      ...SHARED_SKILLS,
      ...agentConfig.skills,
    ]
  }))
});
```

The workaround would be to create nested directories like this:
```
skills/
  web-research/
    web-research/
      SKILL.md
  equirement-completeness-validator/
    equirement-completeness-validator/
      SKILL.md
  ...and so on
```

## What's done

Detection is done by inspecting the lsInfo() result of the source
directory: if a SKILL.md file appears directly in the listing, the
source itself is treated as the skill directory. Otherwise the existing
parent-directory scan runs unchanged.

The two modes can be freely mixed in the sources array:
```ts
sources: [
  '/skills/',               // parent dir: all subdirs with SKILL.md
  '/skills/my-skill/',      // direct path: SKILL.md at its root
 ]
 ```

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>
2026-06-07 14:08:52 -07:00
Hunter Lovell 27ebdc3fea chore(deepagents): clarify LocalShellBackend virtualMode behavior (#577)
## Summary

Fixes #544.

Clarifies `LocalShellBackend` path semantics without introducing a
breaking default change. This keeps legacy behavior intact while making
the bounded-workspace setup explicit in docs and examples.

## Changes

### deepagents (`LocalShellBackend`)

- Clarified `LocalShellBackendOptions` docs to explicitly note that
`rootDir` does not bound filesystem paths when `virtualMode` is `false`.
- Updated `LocalShellBackend` examples to use `virtualMode: true` when
bounded path semantics are intended.
- Added unit coverage to assert legacy behavior is preserved: with
`virtualMode: false`, absolute writes can resolve outside `rootDir`.
2026-06-02 15:44:34 -07:00
Anton Nak 18557db7bb fix(deepagents): gate cache_control writes on per-call request.model (#551)
Fixes #550.

## Problem

`createCacheBreakpointMiddleware` and `createMemoryMiddleware` write
Anthropic-specific `cache_control: { type: "ephemeral" }` markers into
the request payload. Both gate the write at **agent-creation time** in
`createDeepAgent` (whether the *primary* model is Anthropic). When
`modelFallbackMiddleware` swaps `request.model` to a non-Anthropic
provider at request time, the markers leak through and the fallback
provider rejects the request:

```
400 Unknown parameter: 'messages[0].content[N].cache_control'
```

Full root-cause writeup, production trace, and reproduction in #550.

## Fix

Move the model classification from boot-time to **per-call**, using the
existing `isAnthropicModel` helper (`src/utils.ts:9`).

- **`src/middleware/cache.ts`** — bail at the top of `wrapModelCall`
when `request.model` isn't Anthropic.
- **`src/middleware/memory.ts`** — AND the existing `addCacheControl`
flag with the same per-call check. `addCacheControl` keeps its current
public meaning (opt-in switch); the per-call gate is an additional
safety net.
- **`src/agent.ts`** — left untouched. The boot-time install gate stays
(small perf win when primary is non-Anthropic — middleware isn't
installed at all). The new per-call check handles the fallback case
where the middleware *is* installed but the model has been swapped.

## Tests

Each middleware's `.test.ts` got a `per-call provider gating` block.
They build a request with a `ChatAnthropic`-shaped stub vs a
`ChatOpenAI`-shaped stub on `request.model`, run `wrapModelCall`, and
assert `cache_control` is/isn't written. Also covers `ConfigurableModel`
with `modelProvider: "anthropic"` and the string forms
(`"anthropic:claude-..."`, `"openai:gpt-5"`).

Existing fixtures that didn't set `request.model` now pass a
`ChatAnthropic` stub so they keep exercising the write path — they were
previously relying on the unconditional behavior. No behavioral
assertions changed; only the fixture got more explicit.

31/31 tests pass on `libs/deepagents` (`cache.test.ts` +
`memory.test.ts`).

## Compatibility

- **No public API change.** `addCacheControl?: boolean` on
`MemoryMiddlewareOptions` keeps its existing semantics.
- **Anthropic-primary happy path unchanged** — same writes, same cache
hits.
- **Per-call cost:** one `getName()` / string check inside
`wrapModelCall`. Sub-microsecond.
- **Failure mode improvement:** users running `createDeepAgent` with an
Anthropic primary + non-Anthropic fallback no longer get a 400 from the
fallback provider on swap.

## Changeset

`patch` bump on `deepagents`.

## Out of scope

`request.modelSettings.cache_control` (written by LangChain core's
`anthropicPromptCachingMiddleware`) can also leak across the swap.
Mentioned in #550 for tracking — that's a LangChain-side fix, not
deepagents.

---------

Co-authored-by: Anton Nakaliuzhnyi <anakaliuzhnyi@gipartners.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 14:04:23 -07:00
Aman Pandey 1ca6dc92fd fix(deepagents): return application/octet-stream for unknown MIME types (#541)
Fixes #542.

`getMimeType()` falls back to `"text/plain"` for any extension not in
the `MIME_TYPES` lookup table. Since `isTextMimeType("text/plain")`
returns `true`, this means binary files (.zip, .exe, .wasm, .sqlite,
.pyc, .class, .jar, etc.) get treated as text everywhere downstream —
grep searches through them and returns garbage, read_file splits their
content on newlines and paginates it, and StateBackend can silently
corrupt binary data stored via createFileData().

The fix is straightforward: change the default to
`"application/octet-stream"`, which is what unknown binary data should
be. `isTextMimeType()` already returns `false` for it, so binary files
stop getting mangled.

To avoid breaking existing behavior for actual text files that were
previously relying on the fallback (like .txt, .ts, .py, .json, .js —
none of which had explicit entries), this also adds those to the
MIME_TYPES map directly. Covers ~67 common text/code extensions.

All 386 backend tests pass (10 files). The updated test expectations in
utils.test.ts verify both sides: known text extensions still resolve
correctly, and unknown/binary extensions now get
`application/octet-stream` instead of being misidentified as text.

---------

Co-authored-by: Hunter Lovell <40191806+hntrl@users.noreply.github.com>
2026-06-02 13:44:48 -07:00
Hunter Lovell 5d266a213d refactor(node-vfs): make VfsSandbox filesystem-only (#575)
## Summary

This PR removes command-execution semantics from `@langchain/node-vfs`
and aligns `VfsSandbox` with `BackendProtocolV2` as a filesystem-only
backend.

The provider no longer uses sandbox execution abstractions and now
performs core file operations directly against the in-memory VFS.

## Changes

### Protocol alignment

- `VfsSandbox` now implements `BackendProtocolV2` directly instead of
extending sandbox/base-execution abstractions.
- Removed command execution from the provider surface (`execute` is no
longer part of this backend implementation).
- Removed `timeout` from `VfsSandboxOptions` and corresponding docs.

### Runtime behavior

- Added native backend implementations for:
  - `read`
  - `readRaw`
  - `write`
  - `edit`
  - `ls`
  - `grep`
  - `glob`
- Kept upload/download support and added path confinement handling for
invalid traversal paths.
- Continued in-memory VFS-only operation (no temp-dir shell sync path).

### Tests and docs

- Updated unit and integration tests to remove execute-focused
assertions and validate filesystem behavior.
- Updated package docs to describe `BackendProtocolV2` usage and removed
execute/timeout references.
- Added changeset for `@langchain/node-vfs`.
2026-06-02 19:47:14 +00:00
open-swe[bot] b7a5f26fd9 fix(quickjs): scope REPL prompt sandbox bullet to the runtime (#546)
Ports langchain-ai/deepagents#3528 to deepagentsjs.

The base `CodeInterpreterMiddleware` REPL prompt asserted "no
filesystem, no stdlib, no network, no real clock, no `fetch`, no
`require`". When `ptc` is configured, the same system prompt also
exposes a `tools.*` namespace whose members can include things like web
fetch, file I/O, or shell access — directly contradicting the sandbox
bullet.

A model reading both sections sees "no network" *and* `await
tools.webFetch({...})` in the same prompt. With PTC disabled it's even
worse: exposed tools are still reachable through the normal tool-calling
path *outside* `eval`, and the model could interpret the bullet as a
statement about the agent's capabilities rather than the REPL's.

This rewords the bullet to scope it to the QuickJS runtime, and notes
that external side effects from inside the REPL flow through `tools.*`
when it's exposed (otherwise the REPL is pure computation).
`@langchain/quickjs` middleware unit tests, lint, and format all pass
locally.

_Opened collaboratively by Mason Daugherty and open-swe._

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Co-authored-by: Mason Daugherty <61371264+mdrxy@users.noreply.github.com>
2026-06-02 10:41:20 -07:00
Hunter Lovell 84f3c0c2f1 fix(deepagents): add browser and node entrypoints (#574)
## Summary

Fixes #292, #543

This updates `deepagents` packaging to split environment-specific
exports and avoid browser build failures caused by Node-only imports in
the default bundle. Browser consumers now have an explicit
`deepagents/browser` entrypoint, while Node consumers can keep using
`deepagents` (or optionally `deepagents/node`) for the full runtime API.

## Changes

### `deepagents` package exports and entrypoints

- Added `src/browser.ts` as a browser-safe public barrel that excludes
Node-only APIs.
- Added `src/node.ts` as an explicit Node entrypoint that re-exports the
full API.
- Updated `package.json` exports to:
  - route the root `browser` condition to `./dist/browser.js`
  - expose `./browser` and `./node` subpath exports (ESM + CJS + types).
- Updated `tsdown` config to build `index`, `browser`, and `node`
outputs.

### Runtime import graph hardening

- Updated `createDeepAgent` to import `StateBackend` directly from
`backends/state` so it no longer pulls in the full Node-oriented
backends barrel.
- Updated `types.ts` to import `AnyBackendProtocol` from
`backends/protocol` instead of `backends/index`.
- Removed named Node builtin path imports from `backends/utils.ts` by
replacing `path.basename`/`path.extname` with local helpers.

### Documentation and release notes

- Added a README section documenting import guidance: browser apps
should use `deepagents/browser`, and Node apps can continue to use
`deepagents`.
- Added a patch changeset for `deepagents` describing the entrypoint and
packaging fix.
2026-06-02 10:32:55 -07:00
Hunter Lovell 03df237385 fix(deepagents): scope composite route search fanout by path (#572)
## Summary

Fixes #241.

This updates `CompositeBackend` search routing so scoped `grep`/`glob`
requests only fan out to routed backends mounted under the requested
path. Previously, non-route paths (for example `/workspace`) still
queried all routes, which could trigger unrelated backend errors.

## Changes

### `libs/deepagents/src/backends/composite.ts`

- Added route/path helper predicates to distinguish:
  - when a search path is inside a route,
  - when a route is a descendant of the requested search path.
- Updated `grep` fallback behavior to query the default backend plus
only descendant routes (instead of unconditional all-route fanout).
- Updated `glob` fallback behavior to use the same descendant-route
filtering.
- Normalized `grep` path handling to accept `null` and treat it as root
(`/`).
- Reused the same route-matching helper in `ls` for consistent prefix
matching semantics.

### `libs/deepagents/src/backends/composite.test.ts`

- Added regression test to ensure `grep("...", "/workspace")` does not
call unrelated routes (for example `/skills/`) while still searching
relevant descendant routes.
- Added regression test for equivalent `glob` behavior.

Co-authored-by: Christian Bromann <731337+christian-bromann@users.noreply.github.com>
2026-06-02 10:12:26 -07:00
Alexander Olsen 92ddef1894 feat(deepagents): Add support for stateSchema to createDeepAgent() (#569)
## Summary
Adds support for `stateSchema` to `createDeepAgent()` as well as
accompanying tests. Example:

```
const stateSchema = new StateSchema({
  foo: z.string().default("foo"),
});
const agent = createDeepAgent({ model, stateSchema });
// agent.graph.channels includes attribute foo
```

### Callouts
**Opted against compile/runtime check for stateSchema keys**
There is a strong argument here to add a compile-time or runtime check
to ensure uniqueness of `stateSchema` keys to guard against the
first-writer-wins behavior of channel merging. [There is already a
runtime tool name
check](https://github.com/langchain-ai/deepagentsjs/blob/c524561ad0c4b13075b0d0999236f09bf5f6cb89/libs/deepagents/src/agent.ts#L185).
However the topic of how channel merging is handled, I think, deserves a
fast follow to ensure that consumers of this API are properly educated
(rather than just throwing in this key concept into a single docstring).
2026-06-02 10:58:40 -04:00
github-actions[bot] c524561ad0 chore: version packages (#538)
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.13

### Patch Changes

- Updated dependencies
\[[`bfb6eec`](https://github.com/langchain-ai/deepagentsjs/commit/bfb6eecdfe617645b3bdebf9a60d4b08e575cef7),
[`9c666ba`](https://github.com/langchain-ai/deepagentsjs/commit/9c666ba44adc1f8b428546c2191ea71d88b03998),
[`04cc3fc`](https://github.com/langchain-ai/deepagentsjs/commit/04cc3fc26001ee566ed94de44c2dda2cf6adecc4),
[`9221c8a`](https://github.com/langchain-ai/deepagentsjs/commit/9221c8a2b5236954f674e30f3ef0e2962f54fb56),
[`f6d3f13`](https://github.com/langchain-ai/deepagentsjs/commit/f6d3f13559bd2d9dfad63e379b59ad7577e828be)]:
    -   deepagents@1.10.3

## deepagents@1.10.3

### Patch Changes

- [#500](https://github.com/langchain-ai/deepagentsjs/pull/500)
[`bfb6eec`](https://github.com/langchain-ai/deepagentsjs/commit/bfb6eecdfe617645b3bdebf9a60d4b08e575cef7)
Thanks [@colifran](https://github.com/colifran)! - feat(quickjs): add
swarm task tool

- [#288](https://github.com/langchain-ai/deepagentsjs/pull/288)
[`9c666ba`](https://github.com/langchain-ai/deepagentsjs/commit/9c666ba44adc1f8b428546c2191ea71d88b03998)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(deepagents): handle non-string content blocks in tool result
sizechecking

- [#566](https://github.com/langchain-ai/deepagentsjs/pull/566)
[`04cc3fc`](https://github.com/langchain-ai/deepagentsjs/commit/04cc3fc26001ee566ed94de44c2dda2cf6adecc4)
Thanks [@hntrl](https://github.com/hntrl)! - fix(deepagents): propagate
subagent `lc_agent_name` during task delegation
- Ensure `task` tool subagent invocations override
`metadata.lc_agent_name` with the selected `subagent_type`.
- Add regression coverage for both compiled subagents (`runnable`) and
standard subagent specs to verify tool-time metadata reflects the active
subagent.
- Update the `langsmith` peer dependency range in `deepagents` to
`^0.7.1`.

- [#549](https://github.com/langchain-ai/deepagentsjs/pull/549)
[`9221c8a`](https://github.com/langchain-ai/deepagentsjs/commit/9221c8a2b5236954f674e30f3ef0e2962f54fb56)
Thanks [@colifran](https://github.com/colifran)! - chore(deepagents):
move required ptc tools to metadata

- [#537](https://github.com/langchain-ai/deepagentsjs/pull/537)
[`f6d3f13`](https://github.com/langchain-ai/deepagentsjs/commit/f6d3f13559bd2d9dfad63e379b59ad7577e828be)
Thanks [@hntrl](https://github.com/hntrl)! - bump langsmith sdk version

## @langchain/quickjs@0.4.1

### Patch Changes

- [#545](https://github.com/langchain-ai/deepagentsjs/pull/545)
[`b3f0d6e`](https://github.com/langchain-ai/deepagentsjs/commit/b3f0d6e8fa2980652123e0053c116fc9945720ac)
Thanks [@colifran](https://github.com/colifran)! - chore(quickjs):
update swarm task tool to use withStructuredOutput

- [#500](https://github.com/langchain-ai/deepagentsjs/pull/500)
[`bfb6eec`](https://github.com/langchain-ai/deepagentsjs/commit/bfb6eecdfe617645b3bdebf9a60d4b08e575cef7)
Thanks [@colifran](https://github.com/colifran)! - feat(quickjs): add
swarm task tool

- [#549](https://github.com/langchain-ai/deepagentsjs/pull/549)
[`9221c8a`](https://github.com/langchain-ai/deepagentsjs/commit/9221c8a2b5236954f674e30f3ef0e2962f54fb56)
Thanks [@colifran](https://github.com/colifran)! - chore(deepagents):
move required ptc tools to metadata

## @deepagents/evals@0.0.12

### Patch Changes

- Updated dependencies
\[[`bfb6eec`](https://github.com/langchain-ai/deepagentsjs/commit/bfb6eecdfe617645b3bdebf9a60d4b08e575cef7),
[`9c666ba`](https://github.com/langchain-ai/deepagentsjs/commit/9c666ba44adc1f8b428546c2191ea71d88b03998),
[`04cc3fc`](https://github.com/langchain-ai/deepagentsjs/commit/04cc3fc26001ee566ed94de44c2dda2cf6adecc4),
[`9221c8a`](https://github.com/langchain-ai/deepagentsjs/commit/9221c8a2b5236954f674e30f3ef0e2962f54fb56),
[`f6d3f13`](https://github.com/langchain-ai/deepagentsjs/commit/f6d3f13559bd2d9dfad63e379b59ad7577e828be)]:
    -   deepagents@1.10.3

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Colin Francis <colin.francis@langchain.dev>
2026-06-01 14:09:00 -07:00
Hunter Lovell 04cc3fc260 fix(deepagents): propagate subagent lc_agent_name for delegated tasks (#566)
## Summary

Fixes #206.

This updates deepagents subagent delegation so tool executions can
reliably identify the active subagent via
`config.metadata.lc_agent_name` instead of inheriting the parent agent
name. It also adds focused regression tests that validate both compiled
subagents and standard subagent specs follow the same metadata behavior.

## Changes

### `libs/deepagents` subagent metadata propagation

- Updated `createTaskTool` subagent invocation config to explicitly set:
  - `metadata.lc_agent_name = subagent_type`
- existing `configurable.ls_agent_type = "subagent"` behavior remains
unchanged
- Added new regression coverage in `subagent.test.ts`:
  - compiled subagent (`runnable`) path
  - standard subagent spec (`systemPrompt/tools/model`) path
- Tests assert tool-time metadata receives the delegated subagent name
(`worker`), preventing parent-name leakage.

### `libs/deepagents` dependency range update

- Bumped `langsmith` peer dependency range in
`libs/deepagents/package.json` from `>=0.6.0 <1.0.0` to `^0.7.1`.
- Updated `pnpm-lock.yaml` accordingly.
2026-06-01 12:54:59 -07:00
Hunter Lovell 70521d2e30 fix(deno): stabilize reconnect integration test (#567)
## Summary

Stabilizes a flaky Deno provider integration test that intermittently
failed in CI when reconnecting to an existing sandbox immediately after
closing the original connection. The reconnect path can briefly return a
transient `404 DEPLOYMENT_NOT_FOUND`, causing otherwise healthy runs to
fail. This change adds bounded retry/backoff during reconnect and
ensures the reconnected sandbox handle is explicitly closed.

## Changes

### `@langchain/deno`

- Updated reconnect integration test in
`libs/providers/deno/src/sandbox.int.test.ts` to retry
`DenoSandbox.fromId(sandboxId)` with `withRetry` (`5` attempts, `1s`
delay).
- Added a short comment documenting the transient reconnect window after
WebSocket close.
- Added explicit cleanup for the reconnected sandbox to avoid leaking
extra connections during the test run.
2026-06-01 12:54:30 -07:00
Christian Bromann 9c666ba44a fix(deepagents): handle non-string content blocks in tool result sizechecking (#288)
Fixes #277

The tool result eviction logic in `processToolMessage` only checked
`content` when it was a plain string (`typeof msg.content ===
"string"`), which meant array-based content blocks (e.g. `[{ type:
"text", text: "..." }]`) bypassed the size limit entirely and were sent
back to the agent untruncated.

The fix uses the existing `BaseMessage.text` getter from
`@langchain/core`, which already handles both content formats:
- **String content**: returned as-is
- **Array content blocks**: joins all blocks with `type === "text"` into
a single string

This avoids introducing any new utility functions — the upstream API
already solves this.

## Changes

- Updated `processToolMessage()` in `fs.ts` to use `msg.text` instead of
directly checking `msg.content`
- Added 2 unit tests covering array-based content block eviction (large
and small)
2026-06-01 11:32:05 -07:00
Colin Francis 9221c8a2b5 chore(deepagents): move required ptc tools to metadata (#549)
This PR aligns SkillMetadata with the agent skills spec by removing the
top level required ptc tools field and keeps it contained within
metadata
2026-05-22 16:36:51 -07:00
Colin Francis b3f0d6e8fa chore(quickjs): update swarm task tool to use withStructuredOutput (#545)
### Summary

Switch JS swarm task tool to use withStructuredOutput instead of
hand-rolled bindTools + tool_calls extraction.

### Tests

- All 202 unit tests pass
- Removed normalizeSchema tests and bindTools-specific tests, replaced
with withStructuredOutput test using FakeToolCallingModel
2026-05-21 15:38:18 -07:00
Colin Francis bfb6eecdfe feat(quickjs): add swarm task tool (#500)
### Summary

Adds the swarm task tool to @langchain/quickjs and fixes skill module
loading for the agentskills.io spec, enabling parallel subagent dispatch
from inside the QuickJS code interpreter.

Swarm task tool (tools/swarm-task.ts) is a PTC-only tool that bridges
the code interpreter to the host runtime for subagent dispatch. It
supports two modes:
1. Direct model calls with structured output (invoke mode) for
classification/extraction tasks
2. Full agentic loops with tools (agent mode) for multi-step reasoning.
It handles schema normalization, model variant caching with TTL-based
sweeping, and structured output binding.

Spec-compliant entrypoint resolution — loadSkill() now resolves the
entrypoint from metadata.entrypoint (the agentskills.io extension point)
first, falling back to the legacy top-level module field. This lets
skills use spec-compliant frontmatter without a top-level module key.

Subdirectory entrypoint support — the QuickJS module normalizer now uses
the entrypoint's directory (not the skill root) when resolving relative
imports from a bare specifier. This fixes import { ... } from
"./sibling.js" when the entrypoint lives in a subdirectory like
scripts/index.ts.

Supporting changes include wiring skills metadata through the middleware
and session layers, extending the transform pipeline to strip import
type/export type declarations, adding requiredPtcTools validation, and
session improvements (extractToolText, stripLineNumbers, __sessionId__).

The swarm skill itself (table management, batching, filtering,
interpolation) is distributed separately and not included here.

### Tests
- 41 tests for the swarm task tool covering both dispatch modes, schema
normalization, variant caching and TTL sweeping, error handling, and
edge cases around model binding
- 3 new tests for entrypoint resolution (metadata.entrypoint preferred
over module, subdirectory relative imports)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-19 11:43:04 -07:00