Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

outputparser: add Defined parser to extract a struct from LLM output #856

Merged
merged 8 commits into from
Jun 20, 2024

Conversation

erictse
Copy link
Contributor

@erictse erictse commented May 24, 2024

This introduces an output parser named 'Defined' as an improvement to the existing output parser 'Structured'.

A developer can define a struct with the proper tags which can generate a description of the desired output format for an LLM. The parser then returns a struct of the given type, populated with the data it extracted. The developer experience parallels what's described in this Build an Extraction Chain tutorial.

For best results, use this with the tool calling feature of your LLM.

Fixes #171 and #197

PR Checklist

  • Read the Contributing documentation.
  • Read the Code of conduct documentation.
  • Name your Pull Request title clearly, concisely, and prefixed with the name of the primarily affected package you changed according to Good commit messages (such as memory: add interfaces for X, Y or util: add whizzbang helpers).
  • Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
  • Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. Fixes #123).
  • Describes the source of new concepts.
  • References existing implementations as appropriate.
  • Contains test coverage for new functions.
  • Passes all golangci-lint checks.

…t through tagging

Introduces an output parser named 'Defined' as an improvement to the existing
output parser 'Structured'. It is most similar to LangChain's PydanticOutputParser
described at https://api.python.langchain.com/en/latest/output_parsers/langchain_core.output_parsers.pydantic.PydanticOutputParser.html

For best results, use this with the tool calling feature of your LLM.
@erictse
Copy link
Contributor Author

erictse commented May 25, 2024

@tmc I've addressed the linter issues, but the tagalign issues remain for my test file. This feature may mean looking into disabling the tagalign linter may be more worthwhile. It wants to force reordering the json: struct tag key so it appears after describe:, reducing readability.

With outputparser.Defined (schema-defined output parsing), relaxed styling of
struct tags means reduced risk of bugs by not hiding JSON names behind long
describe struct tag string values.
@erictse
Copy link
Contributor Author

erictse commented May 29, 2024

@FluffyKebab Hi, do you have any feedback on this PR for me? Haven't heard from anyone yet.

@erictse
Copy link
Contributor Author

erictse commented Jun 3, 2024

@eliben Sorry if I'm barking up the wrong tree. I'm not sure who should be reviewing/accepting PRs. Either way, do you have any feedback on this?

@eliben
Copy link
Collaborator

eliben commented Jun 3, 2024

@erictse this isn't an area of langchaingo I was working on, so I think you'll have to wait for @tmc to review.

Copy link
Owner

@tmc tmc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally LGTM but have a few comments.

schema string
}

func NewDefined[T any](source T) (Defined[T], error) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please comment exported symbols.

}
}
if numTaggedFields == 0 {
return empty, errors.New("requires at least 1 field with the struct tag 'describe'")
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel as though we should still operate with zero tagged fields.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That seems reasonable. I've updated the code, tests, and doc comments accordingly.


var _ schema.OutputParser[any] = Defined[any]{}

func (p Defined[T]) GetFormatInstructions() string {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please comment on exported symbols.

NumSides int `json:"numSides" describe:"number of sides"`
}

tests := map[string]struct {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please include more test cases (separate PR ok) that include wantErr: true cases

@erictse
Copy link
Contributor Author

erictse commented Jun 16, 2024

@tmc I've addressed your comments, including allowing untagged struct fields.

@tmc
Copy link
Owner

tmc commented Jun 16, 2024

I like this broadly, but can’t help but think this represents a limited subset of what we might encode via https://github.com/invopop/jsonschema — which could be reused to handle tool reprs.

thoughts?

@erictse
Copy link
Contributor Author

erictse commented Jun 17, 2024

Using struct tags to generate JSON Schema looks promising! It should probably be on the roadmap.

However, here are reasons for not dropping this pull request:

  • More is better (in the unpredictable world of LLMs). Some models may lack or be weaker at JSON Schema support than others. The developer can decide which structured data extraction approach is best for their situation.
  • Easier to use. JSON Schema is more complex, which can take folks longer to work with. This feature is comparable to Pydantic classes, and for developers coming from Python, the concept would be familiar.
  • Feature parity. LangChain supports both Pydantic classes and JSON Schema. See LangChain doc.
  • Faster/cheaper(?) This is speculative, but JSON Schema is more verbose and complex–if it does happen to be more resource intensive for some models, having another approach is helpful.

@tmc
Copy link
Owner

tmc commented Jun 20, 2024

That's all fair, let's do it!

Can you follow on with an example and some docs?

@tmc tmc merged commit d9f204a into tmc:main Jun 20, 2024
3 checks passed
renovate bot referenced this pull request in TBD54566975/ftl Jun 26, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@codemirror/view](https://togithub.com/codemirror/view) | [`6.28.1`
->
`6.28.2`](https://renovatebot.com/diffs/npm/@codemirror%2fview/6.28.1/6.28.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@codemirror%2fview/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@codemirror%2fview/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@codemirror%2fview/6.28.1/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@codemirror%2fview/6.28.1/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@headlessui/react](https://togithub.com/tailwindlabs/headlessui)
([source](https://togithub.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react))
| [`2.0.4` ->
`2.1.1`](https://renovatebot.com/diffs/npm/@headlessui%2freact/2.0.4/2.1.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@headlessui%2freact/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@headlessui%2freact/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@headlessui%2freact/2.0.4/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@headlessui%2freact/2.0.4/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [@heroicons/react](https://togithub.com/tailwindlabs/heroicons) |
[`2.1.3` ->
`2.1.4`](https://renovatebot.com/diffs/npm/@heroicons%2freact/2.1.3/2.1.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@heroicons%2freact/2.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@heroicons%2freact/2.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@heroicons%2freact/2.1.3/2.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@heroicons%2freact/2.1.3/2.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mocha)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha))
| [`10.0.6` ->
`10.0.7`](https://renovatebot.com/diffs/npm/@types%2fmocha/10.0.6/10.0.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fmocha/10.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fmocha/10.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fmocha/10.0.6/10.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fmocha/10.0.6/10.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.14.2` ->
`20.14.9`](https://renovatebot.com/diffs/npm/@types%2fnode/20.14.2/20.14.9)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.14.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.14.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.14.2/20.14.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.14.2/20.14.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`7.13.0` ->
`7.14.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/7.13.0/7.14.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/7.13.0/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/7.13.0/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`7.13.0` ->
`7.14.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/7.13.0/7.14.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/7.13.0/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/7.13.0/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [buf](https://togithub.com/bufbuild/buf) | `1.33.0` -> `1.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/buf/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/buf/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/buf/1.33.0/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/buf/1.33.0/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
|
[eslint-plugin-react](https://togithub.com/jsx-eslint/eslint-plugin-react)
| [`7.34.2` ->
`7.34.3`](https://renovatebot.com/diffs/npm/eslint-plugin-react/7.34.2/7.34.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-react/7.34.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-react/7.34.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-react/7.34.2/7.34.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-react/7.34.2/7.34.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [github.com/aws/aws-sdk-go-v2](https://togithub.com/aws/aws-sdk-go-v2)
| `v1.27.2` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2/v1.27.2/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2/v1.27.2/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[github.com/aws/aws-sdk-go-v2/config](https://togithub.com/aws/aws-sdk-go-v2)
| `v1.27.18` -> `v1.27.21` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.18/v1.27.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.18/v1.27.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/aws/aws-sdk-go-v2/credentials](https://togithub.com/aws/aws-sdk-go-v2)
| `v1.17.18` -> `v1.17.21` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fcredentials/v1.17.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fcredentials/v1.17.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fcredentials/v1.17.18/v1.17.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fcredentials/v1.17.18/v1.17.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://togithub.com/aws/aws-sdk-go-v2)
| `v1.30.0` -> `v1.31.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.30.0/v1.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.30.0/v1.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [github.com/puzpuzpuz/xsync/v3](https://togithub.com/puzpuzpuz/xsync)
| `v3.1.0` -> `v3.2.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fpuzpuzpuz%2fxsync%2fv3/v3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fpuzpuzpuz%2fxsync%2fv3/v3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fpuzpuzpuz%2fxsync%2fv3/v3.1.0/v3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fpuzpuzpuz%2fxsync%2fv3/v3.1.0/v3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[github.com/swaggest/jsonschema-go](https://togithub.com/swaggest/jsonschema-go)
| `v0.3.70` -> `v0.3.72` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fswaggest%2fjsonschema-go/v0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fswaggest%2fjsonschema-go/v0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fswaggest%2fjsonschema-go/v0.3.70/v0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fswaggest%2fjsonschema-go/v0.3.70/v0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [github.com/tmc/langchaingo](https://togithub.com/tmc/langchaingo) |
`v0.1.11` -> `v0.1.12` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ftmc%2flangchaingo/v0.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2ftmc%2flangchaingo/v0.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2ftmc%2flangchaingo/v0.1.11/v0.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ftmc%2flangchaingo/v0.1.11/v0.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [maven](https://togithub.com/apache/maven) | `3.9.7` -> `3.9.8` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/maven/3.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/maven/3.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/maven/3.9.7/3.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/maven/3.9.7/3.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | patch |
| [protoc](https://togithub.com/protocolbuffers/protobuf) | `27.1` ->
`27.2` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/protoc/27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/protoc/27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/protoc/27.1/27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/protoc/27.1/27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
| [react-router-dom](https://togithub.com/remix-run/react-router)
([source](https://togithub.com/remix-run/react-router/tree/HEAD/packages/react-router-dom))
| [`6.23.1` ->
`6.24.0`](https://renovatebot.com/diffs/npm/react-router-dom/6.23.1/6.24.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.23.1/6.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.23.1/6.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [reactflow](https://togithub.com/xyflow/xyflow)
([source](https://togithub.com/xyflow/xyflow/tree/HEAD/packages/reactflow))
| [`11.11.3` ->
`11.11.4`](https://renovatebot.com/diffs/npm/reactflow/11.11.3/11.11.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/reactflow/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/reactflow/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/reactflow/11.11.3/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/reactflow/11.11.3/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [typescript](https://www.typescriptlang.org/)
([source](https://togithub.com/Microsoft/TypeScript)) | [`5.4.5` ->
`5.5.2`](https://renovatebot.com/diffs/npm/typescript/5.4.5/5.5.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.4.5/5.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.4.5/5.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [webpack](https://togithub.com/webpack/webpack) | [`5.92.0` ->
`5.92.1`](https://renovatebot.com/diffs/npm/webpack/5.92.0/5.92.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/webpack/5.92.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/webpack/5.92.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/webpack/5.92.0/5.92.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/webpack/5.92.0/5.92.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [zola](https://togithub.com/getzola/zola) | `0.18.0` -> `0.19.1` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/zola/0.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/zola/0.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/zola/0.18.0/0.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/zola/0.18.0/0.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
|
[org.apache.maven.plugins:maven-dependency-plugin](https://maven.apache.org/plugins/)
| `3.7.0` -> `3.7.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.0/3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.0/3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| build | patch |
|
[io.github.classgraph:classgraph](https://togithub.com/classgraph/classgraph)
| `4.8.173` -> `4.8.174` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.classgraph:classgraph/4.8.174?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.classgraph:classgraph/4.8.174?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.classgraph:classgraph/4.8.173/4.8.174?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.classgraph:classgraph/4.8.173/4.8.174?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| compile | patch |

---

### Release Notes

<details>
<summary>codemirror/view (@&#8203;codemirror/view)</summary>

###
[`v6.28.2`](https://togithub.com/codemirror/view/blob/HEAD/CHANGELOG.md#6282-2024-06-21)

[Compare
Source](https://togithub.com/codemirror/view/compare/6.28.1...6.28.2)

##### Bug fixes

Only use `EditContext` on Chrome versions that support passing it an
inverted selection range.

Fix an issue that prevented non-inclusive block widgets from having
their `updateDOM` method called when changed.

Re-enable `EditContext` use on Chrome 126 and up.

</details>

<details>
<summary>tailwindlabs/headlessui (@&#8203;headlessui/react)</summary>

###
[`v2.1.1`](https://togithub.com/tailwindlabs/headlessui/blob/HEAD/packages/@&#8203;headlessui-react/CHANGELOG.md#211---2024-06-26)

[Compare
Source](https://togithub.com/tailwindlabs/headlessui/compare/@headlessui/[email protected]...@headlessui/[email protected])

##### Fixed

- Fix issues spreading omitted props onto components
([#&#8203;3313](https://togithub.com/tailwindlabs/headlessui/pull/3313))
- Fix initial `anchor="selection"` positioning
([#&#8203;3324](https://togithub.com/tailwindlabs/headlessui/pull/3324))
- Fix render prop in `ComboboxOptions` to use `any` instead of `unknown`
([#&#8203;3327](https://togithub.com/tailwindlabs/headlessui/pull/3327))
- Fix incorrect `Transition` boundary for `Dialog` component
([#&#8203;3331](https://togithub.com/tailwindlabs/headlessui/pull/3331))

###
[`v2.1.0`](https://togithub.com/tailwindlabs/headlessui/blob/HEAD/packages/@&#8203;headlessui-react/CHANGELOG.md#210---2024-06-21)

[Compare
Source](https://togithub.com/tailwindlabs/headlessui/compare/@headlessui/[email protected]...@headlessui/[email protected])

##### Added

- Add ability to render multiple `Dialog` components at once (without
nesting them)
([#&#8203;3242](https://togithub.com/tailwindlabs/headlessui/pull/3242))
- Add new data-attribute-based transition API
([#&#8203;3273](https://togithub.com/tailwindlabs/headlessui/pull/3273),
[#&#8203;3285](https://togithub.com/tailwindlabs/headlessui/pull/3285),
[#&#8203;3307](https://togithub.com/tailwindlabs/headlessui/pull/3307),
[#&#8203;3309](https://togithub.com/tailwindlabs/headlessui/pull/3309),
[#&#8203;3312](https://togithub.com/tailwindlabs/headlessui/pull/3312))
- Add `DialogBackdrop` component
([#&#8203;3307](https://togithub.com/tailwindlabs/headlessui/pull/3307),
[#&#8203;3310](https://togithub.com/tailwindlabs/headlessui/pull/3310))
- Add `PopoverBackdrop` component to replace `PopoverOverlay`
([#&#8203;3308](https://togithub.com/tailwindlabs/headlessui/pull/3308))

##### Fixed

- Keep `Combobox` open when clicking scrollbar in `ComboboxOptions`
([#&#8203;3249](https://togithub.com/tailwindlabs/headlessui/pull/3249))
- Ensure `ComboboxInput` does not sync with current value while typing
([#&#8203;3259](https://togithub.com/tailwindlabs/headlessui/pull/3259))
- Fix visual jitter in `Combobox` component when using native scrollbar
([#&#8203;3190](https://togithub.com/tailwindlabs/headlessui/pull/3190))
- Improve UX by freezing `ComboboxOptions` while closing
([#&#8203;3304](https://togithub.com/tailwindlabs/headlessui/pull/3304))
- Merge incoming `style` prop on `ComboboxOptions`, `ListboxOptions`,
`MenuItems`, and `PopoverPanel` components
([#&#8203;3250](https://togithub.com/tailwindlabs/headlessui/pull/3250))
- Prevent focus on `Checkbox` when it is `disabled`
([#&#8203;3251](https://togithub.com/tailwindlabs/headlessui/pull/3251))
- Use `useId` instead of React internals (for React 19 compatibility)
([#&#8203;3254](https://togithub.com/tailwindlabs/headlessui/pull/3254))
- Cancel outside click behavior on touch devices when scrolling
([#&#8203;3266](https://togithub.com/tailwindlabs/headlessui/pull/3266))
- Correctly apply conditional classes when using `Transition` and
`TransitionChild` components
([#&#8203;3303](https://togithub.com/tailwindlabs/headlessui/pull/3303))

##### Changed

- Allow using the `Tab` and `Shift+Tab` keys when the `Listbox`
component is open
([#&#8203;3284](https://togithub.com/tailwindlabs/headlessui/pull/3284))

</details>

<details>
<summary>tailwindlabs/heroicons (@&#8203;heroicons/react)</summary>

###
[`v2.1.4`](https://togithub.com/tailwindlabs/heroicons/blob/HEAD/CHANGELOG.md#214---2024-06-17)

[Compare
Source](https://togithub.com/tailwindlabs/heroicons/compare/v2.1.3...v2.1.4)

##### Fixed

- Improve tree-shakability of React package
([#&#8203;1192](https://togithub.com/tailwindlabs/heroicons/pull/1192))

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v7.14.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7141-2024-06-24)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.14.0...v7.14.1)

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-nullish-coalescing] treat enums and
literals as their underlying primitive types

- **eslint-plugin:** \[prefer-nullish-coalescing] ensure ternary fix
does not remove parens

##### ❤️  Thank You

-   Jake Bailey

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.14.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7140-2024-06-24)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.13.1...v7.14.0)

##### 🚀 Features

-   support TypeScript 5.5

##### 🩹 Fixes

-   **eslint-plugin:** \[no-extraneous-class] handle abstract members

- **eslint-plugin:** \[prefer-nullish-coalescing] handle intersected
primitive types

-   **eslint-plugin:** \[no-invalid-this] support AccessorProperty

##### ❤️  Thank You

-   Brad Zacher
-   cm-ayf
-   Jake Bailey
-   James Zhan
-   Joshua Chen
-   yoshi2no

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.13.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7131-2024-06-17)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.13.0...v7.13.1)

##### 🩹 Fixes

-   **eslint-plugin:** \[prefer-readonly] refine report locations

- **eslint-plugin:** \[return-await] support explicit resource
management

- **eslint-plugin:** \[no-unsafe-member-access] differentiate a
types-error any from a true any

##### ❤️  Thank You

-   Kirk Waiblinger
-   Yukihiro Hasegawa

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v7.14.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7141-2024-06-24)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.14.0...v7.14.1)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.14.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7140-2024-06-24)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.13.1...v7.14.0)

##### 🚀 Features

-   support TypeScript 5.5

##### ❤️  Thank You

-   Brad Zacher
-   cm-ayf
-   Jake Bailey
-   James Zhan
-   Joshua Chen
-   yoshi2no

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.13.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7131-2024-06-17)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.13.0...v7.13.1)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>bufbuild/buf (buf)</summary>

###
[`v1.34.0`](https://togithub.com/bufbuild/buf/blob/HEAD/CHANGELOG.md#v1340---2024-06-21)

-   Add `buf config ls-modules` command to list configured modules.
- Fix issue where `buf generate` would succeed on missing insertion
points and
    panic on empty insertion point files.
- Update `buf generate` to allow the use of Editions syntax when doing
local code
generation by proxying to a `protoc` binary (for languages where code
gen is
implemented inside of `protoc` instead of in a plugin: Java, C++,
Python, etc).
- Allow use of an array of strings for the `protoc_path` property of for
`buf.gen.yaml`,
where the first array element is the actual path and other array
elements are extra
    arguments that are passed to `protoc` each time it is invoked.

</details>

<details>
<summary>jsx-eslint/eslint-plugin-react (eslint-plugin-react)</summary>

###
[`v7.34.3`](https://togithub.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7343---20240618)

[Compare
Source](https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.2...v7.34.3)

##### Fixed

- \[`prop-types`]: null-check rootNode before calling getScope
([#&#8203;3762][] [@&#8203;crnhrv](https://togithub.com/crnhrv))
- \[`boolean-prop-naming`]: avoid a crash with a spread prop
([#&#8203;3733][] [@&#8203;ljharb](https://togithub.com/ljharb))
- \[`jsx-boolean-value`]: `assumeUndefinedIsFalse` with `never` must not
allow explicit `true` value ([#&#8203;3757][]
[@&#8203;6uliver](https://togithub.com/6uliver))
- \[`no-object-type-as-default-prop`]: enable rule for components with
many parameters ([#&#8203;3768][]
[@&#8203;JulienR1](https://togithub.com/JulienR1))
- \[`jsx-key`]: incorrect behavior for checkKeyMustBeforeSpread with map
callbacks ([#&#8203;3769][]
[@&#8203;akulsr0](https://togithub.com/akulsr0))

[7.34.3]:
https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.2...v7.34.3

[#&#8203;3769]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3769

[#&#8203;3768]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3768

[#&#8203;3762]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3762

[#&#8203;3757]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3757

[#&#8203;3733]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/3733

</details>

<details>
<summary>aws/aws-sdk-go-v2 (github.com/aws/aws-sdk-go-v2)</summary>

###
[`v1.30.0`](https://togithub.com/aws/aws-sdk-go-v2/compare/v1.29.0...v1.30.0)

[Compare
Source](https://togithub.com/aws/aws-sdk-go-v2/compare/v1.29.0...v1.30.0)

###
[`v1.29.0`](https://togithub.com/aws/aws-sdk-go-v2/compare/v1.28.0...v1.29.0)

[Compare
Source](https://togithub.com/aws/aws-sdk-go-v2/compare/v1.28.0...v1.29.0)

###
[`v1.28.0`](https://togithub.com/aws/aws-sdk-go-v2/compare/v1.27.2...v1.28.0)

[Compare
Source](https://togithub.com/aws/aws-sdk-go-v2/compare/v1.27.2...v1.28.0)

</details>

<details>
<summary>puzpuzpuz/xsync (github.com/puzpuzpuz/xsync/v3)</summary>

### [`v3.2.0`](https://togithub.com/puzpuzpuz/xsync/releases/tag/v3.2.0)

[Compare
Source](https://togithub.com/puzpuzpuz/xsync/compare/v3.1.0...v3.2.0)

- Introduce Map/MapOf configs and grow-only option
([#&#8203;132](https://togithub.com/puzpuzpuz/xsync/issues/132))

Adds options support to the `NewMap`/`NewMapOf` functions. A `MapOf` can
now be created like this:

```go
m := xsync.NewMapOf[int, int](WithPresize(100))
```

`NewPresizedMap`/`NewPresizedMapOf` functions are deprecated. Use the
`WithPresize` option instead.

Also, adds `WithGrowOnly` option. It configures new `Map`/`MapOf`
instance to be grow-only. This means that the underlying hash table
grows in capacity when new keys are added, but does not shrink when keys
are deleted. The only exception to this rule is the `Clear` method which
shrinks the hash table back to the initial capacity.

Grow-only maps are more efficient in the case of oscillating map size,
i.e. when the map frequently grows and then shrinks in size.

</details>

<details>
<summary>swaggest/jsonschema-go
(github.com/swaggest/jsonschema-go)</summary>

###
[`v0.3.72`](https://togithub.com/swaggest/jsonschema-go/releases/tag/v0.3.72)

[Compare
Source](https://togithub.com/swaggest/jsonschema-go/compare/v0.3.71...v0.3.72)

#### What's Changed

- Recognize popular UUID types by
[@&#8203;vearutop](https://togithub.com/vearutop) in
[https://github.com/swaggest/jsonschema-go/pull/120](https://togithub.com/swaggest/jsonschema-go/pull/120)

**Full Changelog**:
https://github.com/swaggest/jsonschema-go/compare/v0.3.71...v0.3.72

###
[`v0.3.71`](https://togithub.com/swaggest/jsonschema-go/releases/tag/v0.3.71)

[Compare
Source](https://togithub.com/swaggest/jsonschema-go/compare/v0.3.70...v0.3.71)

#### What's Changed

- Update CI by [@&#8203;vearutop](https://togithub.com/vearutop) in
[https://github.com/swaggest/jsonschema-go/pull/118](https://togithub.com/swaggest/jsonschema-go/pull/118)
- Recognize \[]byte as base64 string by
[@&#8203;vearutop](https://togithub.com/vearutop) in
[https://github.com/swaggest/jsonschema-go/pull/119](https://togithub.com/swaggest/jsonschema-go/pull/119)

**Full Changelog**:
https://github.com/swaggest/jsonschema-go/compare/v0.3.70...v0.3.71

</details>

<details>
<summary>tmc/langchaingo (github.com/tmc/langchaingo)</summary>

###
[`v0.1.12`](https://togithub.com/tmc/langchaingo/releases/tag/v0.1.12)

[Compare
Source](https://togithub.com/tmc/langchaingo/compare/v0.1.11...v0.1.12)

#### What's Changed

- llms/googleai: fix vertex do not return usage info by
[@&#8203;wangjiancn](https://togithub.com/wangjiancn) in
[https://github.com/tmc/langchaingo/pull/904](https://togithub.com/tmc/langchaingo/pull/904)
- bugfix: Anthropic Function Calling by
[@&#8203;lwlee2608](https://togithub.com/lwlee2608) in
[https://github.com/tmc/langchaingo/pull/899](https://togithub.com/tmc/langchaingo/pull/899)
- llms/anthropic: Fix Content set incorrectly for anthropic llm requests
by [@&#8203;JckHoe](https://togithub.com/JckHoe) in
[https://github.com/tmc/langchaingo/pull/908](https://togithub.com/tmc/langchaingo/pull/908)
- llms/googleai: fix convert tool error by
[@&#8203;wangjiancn](https://togithub.com/wangjiancn) in
[https://github.com/tmc/langchaingo/pull/903](https://togithub.com/tmc/langchaingo/pull/903)
- llms/googleai: Fix usage population tests, max token test, update dpep
by [@&#8203;tmc](https://togithub.com/tmc) in
[https://github.com/tmc/langchaingo/pull/910](https://togithub.com/tmc/langchaingo/pull/910)
- docs/groq: by
[@&#8203;devalexandre](https://togithub.com/devalexandre) in
[https://github.com/tmc/langchaingo/pull/907](https://togithub.com/tmc/langchaingo/pull/907)
- llms/watsonx: update module by
[@&#8203;h0rv](https://togithub.com/h0rv) in
[https://github.com/tmc/langchaingo/pull/902](https://togithub.com/tmc/langchaingo/pull/902)
- docs: fix text_splitters mdx code example never closed by
[@&#8203;4lxprime](https://togithub.com/4lxprime) in
[https://github.com/tmc/langchaingo/pull/900](https://togithub.com/tmc/langchaingo/pull/900)
- textsplitter: add WithHeadingHierarchy option to markdown splitter to
retain heading hierarchy in chunks by
[@&#8203;iwilltry42](https://togithub.com/iwilltry42) in
[https://github.com/tmc/langchaingo/pull/898](https://togithub.com/tmc/langchaingo/pull/898)
- examples: point watsonx example at current main by
[@&#8203;tmc](https://togithub.com/tmc) in
[https://github.com/tmc/langchaingo/pull/911](https://togithub.com/tmc/langchaingo/pull/911)
- outputparser: add `Defined` parser to extract a struct from LLM output
by [@&#8203;erictse](https://togithub.com/erictse) in
[https://github.com/tmc/langchaingo/pull/856](https://togithub.com/tmc/langchaingo/pull/856)
- anthropic: Improve streaming message handling in anthropic client by
[@&#8203;tmc](https://togithub.com/tmc) in
[https://github.com/tmc/langchaingo/pull/912](https://togithub.com/tmc/langchaingo/pull/912)
- googleai: Settle on GOOGLE_API_KEY for google auth env var name by
[@&#8203;tmc](https://togithub.com/tmc) in
[https://github.com/tmc/langchaingo/pull/913](https://togithub.com/tmc/langchaingo/pull/913)
- llms: Increase default tokens by
[@&#8203;tmc](https://togithub.com/tmc) in
[https://github.com/tmc/langchaingo/pull/914](https://togithub.com/tmc/langchaingo/pull/914)
- examples: Add example readmes by
[@&#8203;tmc](https://togithub.com/tmc) in
[https://github.com/tmc/langchaingo/pull/916](https://togithub.com/tmc/langchaingo/pull/916)
- examples: Improve top level readme by
[@&#8203;tmc](https://togithub.com/tmc) in
[https://github.com/tmc/langchaingo/pull/919](https://togithub.com/tmc/langchaingo/pull/919)
- anthropic: Spruce up tool calling example by
[@&#8203;tmc](https://togithub.com/tmc) in
[https://github.com/tmc/langchaingo/pull/921](https://togithub.com/tmc/langchaingo/pull/921)
- examples: point to 0.1.12-pre.0 by
[@&#8203;tmc](https://togithub.com/tmc) in
[https://github.com/tmc/langchaingo/pull/922](https://togithub.com/tmc/langchaingo/pull/922)

#### New Contributors

- [@&#8203;JckHoe](https://togithub.com/JckHoe) made their first
contribution in
[https://github.com/tmc/langchaingo/pull/908](https://togithub.com/tmc/langchaingo/pull/908)
- [@&#8203;4lxprime](https://togithub.com/4lxprime) made their first
contribution in
[https://github.com/tmc/langchaingo/pull/900](https://togithub.com/tmc/langchaingo/pull/900)
- [@&#8203;iwilltry42](https://togithub.com/iwilltry42) made their first
contribution in
[https://github.com/tmc/langchaingo/pull/898](https://togithub.com/tmc/langchaingo/pull/898)
- [@&#8203;erictse](https://togithub.com/erictse) made their first
contribution in
[https://github.com/tmc/langchaingo/pull/856](https://togithub.com/tmc/langchaingo/pull/856)

**Full Changelog**:
https://github.com/tmc/langchaingo/compare/v0.1.11...v0.1.12

</details>

<details>
<summary>apache/maven (maven)</summary>

###
[`v3.9.8`](https://togithub.com/apache/maven/releases/tag/maven-3.9.8):
3.9.8

[Compare
Source](https://togithub.com/apache/maven/compare/maven-3.9.7...maven-3.9.8)

##### [Release Notes - Maven - Version
3.9.8](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922\&version=12354748)

<h2>        Bug
</h2>
<ul>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-7758'>MNG-7758</a>] -
o.e.aether.resolution.ArtifactResolutionException incorrectly examined
when multiple repositories are involved
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8066'>MNG-8066</a>] -
Maven hangs on self-referencing exceptions
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8116'>MNG-8116</a>] -
Plugin configuration can randomly fail in case of method overloading as
it doesn&#&#8203;39;t take into account implementation attribute
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8131'>MNG-8131</a>] -
Property replacement in dependency pom no longer works
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8135'>MNG-8135</a>] -
Profile activation based on OS properties is no longer case insensitive
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8142'>MNG-8142</a>] - If
JDK profile activator gets &quot;invalid&quot; JDK version for whatever
reason, it chokes but does not tell why
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8147'>MNG-8147</a>] -
Profile interpolation broke their evaluation in case of duplicate IDs
</li>
</ul>

<h2>        Improvement
</h2>
<ul>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-7902'>MNG-7902</a>] -
Sort plugins in validation report
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8140'>MNG-8140</a>] -
When a model is discarded (by model builder) for whatever reason, show
why it happened
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8141'>MNG-8141</a>] -
Model Builder should report if not sure about &quot;fully correct&quot;
outcome
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8150'>MNG-8150</a>] -
Make SimplexTransferListener handle absent source/target files
</li>
</ul>

<h2>        Task
</h2>
<ul>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8146'>MNG-8146</a>] -
Drop use of commons-lang
</li>
</ul>

<h2>        Dependency upgrade
</h2>
<ul>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8136'>MNG-8136</a>] -
Update to Eclipse Sisu 0.9.0.M3
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8143'>MNG-8143</a>] -
Update to commons-cli 1.8.0
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8144'>MNG-8144</a>] -
Update to Guava 32.2.1-jre
</li>
<li>[<a
href='https://issues.apache.org/jira/browse/MNG-8154'>MNG-8154</a>] -
Upgrade default plugin bindings
</li>
</ul>

***

##### What's Changed

- Use Maven Wrapper to build by
[@&#8203;slawekjaranowski](https://togithub.com/slawekjaranowski) in
[https://github.com/apache/maven/pull/1553](https://togithub.com/apache/maven/pull/1553)
- \[3.9.x] \[MNG-8136] Update Eclipse Sisu to 0.9.0.M3 by
[@&#8203;cstamas](https://togithub.com/cstamas) in
[https://github.com/apache/maven/pull/1547](https://togithub.com/apache/maven/pull/1547)
- \[MNG-8135] Profile activation based on OS properties is no longer
case insensitive by [@&#8203;cstamas](https://togithub.com/cstamas) in
[https://github.com/apache/maven/pull/1561](https://togithub.com/apache/maven/pull/1561)
- \[3.9.x] Dependency updates by
[@&#8203;cstamas](https://togithub.com/cstamas) in
[https://github.com/apache/maven/pull/1560](https://togithub.com/apache/maven/pull/1560)
- \[MNG-7902] Sort plugins in the validation report
([#&#8203;1510](https://togithub.com/apache/maven/issues/1510)) by
[@&#8203;slawekjaranowski](https://togithub.com/slawekjaranowski) in
[https://github.com/apache/maven/pull/1562](https://togithub.com/apache/maven/pull/1562)
- \[MNG-8066] Default exception handler does not handle recursion by
[@&#8203;cstamas](https://togithub.com/cstamas) in
[https://github.com/apache/maven/pull/1558](https://togithub.com/apache/maven/pull/1558)
- \[MNG-8142] Hidden bug: JDK profile activator throw NumberFormatEx by
[@&#8203;cstamas](https://togithub.com/cstamas) in
[https://github.com/apache/maven/pull/1557](https://togithub.com/apache/maven/pull/1557)
- \[MNG-8146] Drop commons-lang by
[@&#8203;cstamas](https://togithub.com/cstamas) in
[https://github.com/apache/maven/pull/1564](https://togithub.com/apache/maven/pull/1564)
- \[MNG-8140] Always tell why model was discarded as "invalid" by
[@&#8203;cstamas](https://togithub.com/cstamas) in
[https://github.com/apache/maven/pull/1555](https://togithub.com/apache/maven/pull/1555)
- \[MNG-8141] Model builder should report problems it finds during build
by [@&#8203;cstamas](https://togithub.com/cstamas) in
[https://github.com/apache/maven/pull/1556](https://togithub.com/apache/maven/pull/1556)
- \[MNG-8141]\[MNG-8147] Restore profile ID invariance but warn if
duplicate IDs present by [@&#8203;cstamas](https://togithub.com/cstamas)
in
[https://github.com/apache/maven/pull/1568](https://togithub.com/apache/maven/pull/1568)
- \[MNG-8141] Aftermath, and tidy up by
[@&#8203;cstamas](https://togithub.com/cstamas) in
[https://github.com/apache/maven/pull/1572](https://togithub.com/apache/maven/pull/1572)
- \[MNG-8150] Backport TransferListener improvements for Maven 3.9.x by
[@&#8203;pshevche](https://togithub.com/pshevche) in
[https://github.com/apache/maven/pull/1576](https://togithub.com/apache/maven/pull/1576)
- \[MNG-7758] Report dependency problems for all repository by
[@&#8203;slawekjaranowski](https://togithub.com/slawekjaranowski) in
[https://github.com/apache/maven/pull/1584](https://togithub.com/apache/maven/pull/1584)
- \[MNG-8154] Upgrade default plugin bindings by
[@&#8203;slawekjaranowski](https://togithub.com/slawekjaranowski) in
[https://github.com/apache/maven/pull/1586](https://togithub.com/apache/maven/pull/1586)

**Full Changelog**:
https://github.com/apache/maven/compare/maven-3.9.7...maven-3.9.8

</details>

<details>
<summary>protocolbuffers/protobuf (protoc)</summary>

###
[`v27.2`](https://togithub.com/protocolbuffers/protobuf/releases/tag/v27.2):
Protocol Buffers v27.2

### Announcements

- [Protobuf News](https://protobuf.dev/news/) may include additional
announcements or pre-announcements for upcoming changes.

### Compiler

- Avoid calling absl::InitializeLog in protoc with MSVC
(https://github.com/protocolbuffers/protobuf/commit/aa7fcb3662f677b6ef06b55d5cae9d5b242fa1ef)

### C++

- Fix string_type bugs in edition 2023
([#&#8203;17211](https://togithub.com/protocolbuffers/protobuf/issues/17211))
(https://github.com/protocolbuffers/protobuf/commit/4923b8d72d39a4189ca7c7b9e20359d6ba527a10)
- Add simple conformance test that builds the old gencode against the
current runtime.
(https://github.com/protocolbuffers/protobuf/commit/9cfb59b5e305dba959403b56112d9a8cf1f4d832)
- Make the underlying type of the enum by 8-bits instead of using
bitfields for
(https://github.com/protocolbuffers/protobuf/commit/316f493b2f7f87f4402caea0d0ae1f332e2550fb)

### Java

- Cleanup imports and comments in V3 stubs.
(https://github.com/protocolbuffers/protobuf/commit/270ca6681a686fea24e23f7a389e4e3997409a4c)
- Add stubs for GeneratedMessageV3, RepeatedFieldBuilderV3,
SingleFieldBuilderV3 for compatibility with older <4.26.x gencode.
(https://github.com/protocolbuffers/protobuf/commit/1e360a422a04942ff0758f4a390fb6c27b680c96)
- Fix checking unknown field set empty which wasn't exposed yet in 27.x
(https://github.com/protocolbuffers/protobuf/commit/c7a006a225e0b94b639a9be694b03c835f4db6d6)
- Reserialize all unresolved features using java features from the
generated pool in case of descriptors from the custom pool.
(https://github.com/protocolbuffers/protobuf/commit/2426a02b90d61e6c18b8ffa411e76b1642f47ad6)
- Reparse unknown features using extension registry containing Java
features.
(https://github.com/protocolbuffers/protobuf/commit/e5ddc45645871fbe2c6fc089ebe09f72ca727b5e)
- Fix data race in crosslink.
(https://github.com/protocolbuffers/protobuf/commit/3d71e22b7ae17cbe82dd20a29ef7ef4e75e06ec5)
- Fix delimited inheritance in all languages.
(https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773)

### Csharp

- Regenerate stale files
(https://github.com/protocolbuffers/protobuf/commit/29f1b5259ea224abcaa9a4eb5e28f804ea8d5097)
- Fix delimited inheritance in all languages.
(https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773)

### Python

- Fix delimited inheritance in all languages.
(https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773)

### PHP

##### PHP C-Extension

- Regenerate stale files
(https://github.com/protocolbuffers/protobuf/commit/29f1b5259ea224abcaa9a4eb5e28f804ea8d5097)
-   *See also UPB changes below, which may affect PHP C-Extension.*

### Ruby

##### Ruby C-Extension

- Regenerate stale files
(https://github.com/protocolbuffers/protobuf/commit/29f1b5259ea224abcaa9a4eb5e28f804ea8d5097)
-   *See also UPB changes below, which may affect Ruby C-Extension.*

### UPB (Python/PHP/Ruby C-Extension)

- Fix delimited inheritance in all languages.
(https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773)

### Other

- Port windows bootstrapping fix
([#&#8203;17225](https://togithub.com/protocolbuffers/protobuf/issues/17225))
(https://github.com/protocolbuffers/protobuf/commit/19bd2115d04fcc6196e504a4f07d99b6f16be7d7)

</details>

<details>
<summary>remix-run/react-router (react-router-dom)</summary>

###
[`v6.24.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#6240)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/[email protected]@6.24.0)

##### Minor Changes

- Add support for Lazy Route Discovery (a.k.a. Fog of War)
([#&#8203;11626](https://togithub.com/remix-run/react-router/pull/11626))

- RFC: <https://togithub.com/remix-run/react-router/discussions/11113>
- `unstable_patchRoutesOnMiss` docs:
<https://reactrouter.com/en/main/routers/create-browser-router>

##### Patch Changes

- Fix `fetcher.submit` types - remove incorrect
`navigate`/`fetcherKey`/`unstable_viewTransition` options because they
are only relevant for `useSubmit`
([#&#8203;11631](https://togithub.com/remix-run/react-router/pull/11631))
- Allow falsy `location.state` values passed to `<StaticRouter>`
([#&#8203;11495](https://togithub.com/remix-run/react-router/pull/11495))
-   Updated dependencies:
    -   `[email protected]`
    -   `@remix-run/[email protected]`

</details>

<details>
<summary>xyflow/xyflow (reactflow)</summary>

###
[`v11.11.4`](https://togithub.com/xyflow/xyflow/releases/tag/11.11.4)

[Compare
Source](https://togithub.com/xyflow/xyflow/compare/[email protected])

This release adds some deprecation warnings and introduces new function
and attribute names for "edge update" which is now called "edge
reconnect":

`updateEdge` => `reconnectEdge`
`onEdgeUpdateStart` => `onReconnectStart`
`onEdgeUpdate` => `onReconnect`
`onEdgeUpdateEnd` => `onReconnectEnd`
`edgeUpdaterRadius` => `reconnectRadius`
`edge.updatable` => `edge.reconnectable`

We changed the term, because we think it's more clear what it does and
is better to distinguish from the new `updateEdge` and `updateEdgeData`
helpers in React Flow 12.

##### Patch Changes

- [#&#8203;4389](https://togithub.com/xyflow/xyflow/pull/4389)
[`092b2ecb`](https://togithub.com/xyflow/xyflow/commit/092b2ecbc45aa829e590acb094c7ef75d752d211)
- rename updateEdge to reconectEdge
- [#&#8203;4387](https://togithub.com/xyflow/xyflow/pull/4387)
[`280a64ee`](https://togithub.com/xyflow/xyflow/commit/280a64ee1652e36366ea0e0ad6a56a41c6c5f7b9)
- abort drag when multiple touches are detected
- Updated dependencies
\[[`092b2ecb`](https://togithub.com/xyflow/xyflow/commit/092b2ecbc45aa829e590acb094c7ef75d752d211),
[`280a64ee`](https://togithub.com/xyflow/xyflow/commit/280a64ee1652e36366ea0e0ad6a56a41c6c5f7b9)]:
-
[@&#8203;reactflow/core](https://togithub.com/reactflow/core)[@&#8203;11](https://togithub.com/11).11.4
-
[@&#8203;reactflow/background](https://togithub.com/reactflow/background)[@&#8203;11](https://togithub.com/11).3.14
-
[@&#8203;reactflow/controls](https://togithub.com/reactflow/controls)[@&#8203;11](https://togithub.com/11).2.14
-
[@&#8203;reactflow/minimap](https://togithub.com/reactflow/minimap)[@&#8203;11](https://togithub.com/11).7.14
-
[@&#8203;reactflow/node-resizer](https://togithub.com/reactflow/node-resizer)[@&#8203;2](https://togithub.com/2).2.14
-
[@&#8203;reactflow/node-toolbar](https://togithub.com/reactflow/node-toolbar)[@&#8203;1](https://togithub.com/1).3.14

</details>

<details>
<summary>Microsoft/TypeScript (typescript)</summary>

###
[`v5.5.2`](https://togithub.com/Microsoft/TypeScript/compare/v5.4.5...ce2e60e4ea15a65992e54a9e8877d16be9d42abb)

[Compare
Source](https://togithub.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.2)

</details>

<details>
<summary>webpack/webpack (webpack)</summary>

###
[`v5.92.1`](https://togithub.com/webpack/webpack/compare/v5.92.0...a82e0cd00e26d8452295f0d680417e4656a6d7cc)

[Compare
Source](https://togithub.com/webpack/webpack/compare/v5.92.0...v5.92.1)

</details>

<details>
<summary>getzola/zola (zola)</summary>

###
[`v0.19.1`](https://togithub.com/getzola/zola/blob/HEAD/CHANGELOG.md#0191-2024-06-24)

- Fix `config.generate_feeds` being still serialized as
`config.generate_feed`. Both are available for now
-   Fix `zola serve` not reacting to changes on some OSes

###
[`v0.19.0`](https://togithub.com/getzola/zola/blob/HEAD/CHANGELOG.md#0190-2024-06-20)

- Updates the pulldown-cmark dependency to v0.11.0. This improves
footnote handling, and may also introduce some minor behavior changes
such as reducing the amount of unnecessary HTML-escaping of text
content.
-   Add bottom footnotes with backreference option
-   Fix link check report inconsistency
-   Fix resizing for images with EXIF orientation
-   Add MIME type to get_image_metadata
-   Fix hot loading for config.toml in some cases
-   Add `render = false` capability to pages
-   Handle string dates in YAML front-matter
-   Add support for fuse.js search format
-   Added support for generating multiple kinds of feeds at once
- Changed config options named `generate_feed` to `generate_feeds` (both
in config.toml and in section front-matter)
- Changed config option `feed_filename: String` to `feed_filenames:
Vec<String>`
- The config file no longer allows arbitrary fields outside the
`[extra]` section

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/TBD54566975/ftl).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQxMy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Wes <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Structured parser doesn't parse array
3 participants