- enables more dynamic graphs in future
- implement stream_mode=updates
- fix extra options keys being passed to nodes
- fix stream_mode for invoke
- fix issue where writes array for each task wasn't used
* Pregel/Graph: Make channel creation explicit, make Pregel constructor type safe
- still need to migrate StateGraph
* Make type args const
* Add stricter typings for graph/stategraph/messagegraph constructors (#128)
* Add stricter typings for graph/stategraph/messagegraph constructors
Inspired by #112
* Fix tests
* Fix remaining types
* Implement _shouldInterrupt().
* Update _applyWrites(). Update checkpoint channel versions to max version + 1.
* Remove _applyWritesFromView().
* Update _prepareNextTasks() to support returning Array<PregelTaskDescription>.
* Update implementation of _prepareNextTasks() to match Python implementation.
* Remove side effect from _prepareNextTasks() and migrate clients. Add unit test for _prepareNextTasks().
* Update implementation of _prepareTasks() and PregelNode.pipe() simultaneously. These changes need to be made together.
* Implement _localRead().
* Migrate ChannelRead and ChannelWrite to extend from RunnableCallable.
* Update @langchain/core in order to use mergeConfigs().
* Implement streamChannelsList getter.
* Remove TODO comment.
* Implement Pregel types and update debug print methods.
* Rename ChannelInvoke to PregelNode. Remove field. Update constructor arguments.
* Change type of PregelNodes.channels back to support string instead of string[].
* Update ChannelRead class.
* Update ChannelWrite.
* Update PregelNode pipe() function.
* Update mapInput() and readChannels() in io.ts.
* Add mapOutputValues() and mapOutputUpdates() to io.ts.
* Fix lint error.
* Remove when parameter from Channel.subscribeTo() function.
* Fix bug in readChannels(). Add unit tests for readChannel() and readChannels().
* Add unit tests for mapInput(), mapOutputValues(), mapOutputUpdates().
* Update _write() to match implementation in https://github.com/langchain-ai/langgraph/pull/345.
* Fix lint errors.
* Add (failing) unit test for invoking nested graph.
* Fix minor typing issues.
* Fix skipped unit test. Implement RunnableCallable to skip invocation of Runnable if it is defined in graph state.
* Update validateGraph(). Add unit tests.
* Update Channel.writeTo(). Remove reserved channels implementation.
* Update interface for Pregel class - remove 'hidden' and 'interrupt' APIs. Remove reserved channels functionality.
* Update Pregel constructor. Implement validate() method.
* Implement PregelNode.getWriters() and PregelNode.getNode().
* Change PregelNode.channels from Record<string, string | string to Record<string, string> | string[], i.e. support array of strings.
* Rename channelMappingOrString to channelMappingOrArray.
* Update BaseCheckpointSaver class with getTuple() and list() functions.
* Fix bug when selecting max ts (string).
* Remove console.log().
* Fix bug in put(). Add unit tests.
* Fix format errors.
* Fix lint errors.
* Fix prettier format issues.
* Create NoopSerializer for MemorySaver checkpointer.
* Implement SqliteSaver.
* Implement put() and list() for SqliteSaver and add unit tests.
* Change default checkpoint configuration to END_OF_STEP.
* Refactor type casting for Row type and remove isSetup field.
* Add unit test for verifying parentTs in sqlite db.
* Change Sqlite schema to snake_case to match Python implementation.
* Fix race condition bug with SqliteSaver constructor.
* Implement generics for checkpoint saver and serde protocol.
* Fix type error in Graph classes.
* Require input type of serializer for checkpointers to be Checkpoint type.
* Rename empty() to fromCheckpoint(). Update update() implementations to exactly match Python implementations.
* Format tests.
* Deep copy Checkpoint data when creating new Checkpoint.
* Remove initialValueFactory from BaseChannel.
* Update createCheckpoint() to exclude values carried over from previous checkpoint.