mahler
Version:
A automated task composer and HTN based planner for building autonomous system agents
472 lines (334 loc) • 13 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
This project adheres to [Semantic Versioning](http://semver.org/).
# v4.1.5
## (2025-03-19)
* Update dependency tar-stream to v3.1.7 [balena-renovate[bot]]
# v4.1.4
## (2025-03-19)
* Update dependency @types/tar-stream to v2.2.3 [balena-renovate[bot]]
# v4.1.3
## (2025-02-10)
* Move noUncheckedIndexAccess to release tsconfig [Felipe Lalanne]
* Keep comments on TS builds [Felipe Lalanne]
# v4.1.2
## (2024-12-09)
* Calculate task id base on user definition [Felipe Lalanne]
* Fix bug with generated delete actions [Felipe Lalanne]
# v4.1.1
## (2024-09-19)
* Use noUncheckedIndexedAccess as TS configuration [Felipe Lalanne]
# v4.1.0
## (2024-08-05)
* Improve Task contructor typings [Felipe Lalanne]
* Improve README [Felipe Lalanne]
# v4.0.0
## (2024-07-25)
* Add agent option to abort planning with timeout [Felipe Lalanne]
* Improve Pointer type to be more precise [Felipe Lalanne]
* Remove `logger` property of AgentOpts [Felipe Lalanne]
* Move state rollback to Agent runtime [Felipe Lalanne]
* Modify runtime to report changes [Felipe Lalanne]
* Simplify Sensor interface. [Felipe Lalanne]
* Refactor operation types [Felipe Lalanne]
# v3.5.1
## (2024-05-10)
* Fix import paths using `lib/*` [Felipe Lalanne]
# v3.5.0
## (2024-05-10)
* Update sensor subscription at runtime init [Felipe Lalanne]
* Add lens utilities [Felipe Lalanne]
* Allow using observables for sensors [Felipe Lalanne]
* Add `filter` operation to Observable [Felipe Lalanne]
* Allow lens variables for Sensor constructor [Felipe Lalanne]
# v3.4.1
## (2024-04-30)
* Use parallel plan representation when debugging [Felipe Lalanne]
* Settle parallel branches before re-planning [Felipe Lalanne]
# v3.4.0
## (2024-04-28)
* Expose `reduce` function on the DAG module [Felipe Lalanne]
* Refactor planner node module to use DAG types [Felipe Lalanne]
* Use DAG operations in agent runtime [Felipe Lalanne]
* Use DAG.reverse in planner [Felipe Lalanne]
* Add mapReduce and reverse methods to DAG [Felipe Lalanne]
* Generate real DAGs using the PlanBuilder interface [Felipe Lalanne]
* Use dag module in planner and testing modules [Felipe Lalanne]
* Create generic DAG interface and methods [Felipe Lalanne]
# v3.3.0
## (2024-04-10)
* Add test utility to run a task [Felipe Lalanne]
# v3.2.1
## (2024-04-10)
* Fix UnorderedArray comparison failing for undefined [Felipe Lalanne]
# v3.2.0
## (2024-04-10)
* Add support for 'strict' targets on the Agent interface [Felipe Lalanne]
* Fix issue with ignore globs [Felipe Lalanne]
# v3.1.1
## (2024-04-04)
* Update @balena/lint to v8 [Felipe Lalanne]
# v3.1.0
## (2024-01-10)
* Create UnorderedArray type [Felipe Lalanne]
* Export deepEqual as part of the `utils` namespace [Felipe Lalanne]
# v3.0.2
## (2024-01-03)
* Do not recurse into arrays when constructing Target [Felipe Lalanne]
# v3.0.1
## (2023-12-12)
* Export Task constructor prop types [Felipe Lalanne]
# v3.0.0
## (2023-12-06)
* Remove duplicate tasks when constructing Planner [Felipe Lalanne]
* Clone target when grounding tasks [Felipe Lalanne]
* Rename test `console` as `logger` [Felipe Lalanne]
* Improve error messaging for failed plans on runtime [Felipe Lalanne]
* Clone the current state before planning [Felipe Lalanne]
* Do not catch applyPatch errors. [Felipe Lalanne]
* Allow method recursion [Felipe Lalanne]
* Refactor planner to allow errors to abort search [Felipe Lalanne]
* Fix maxSearchDepth on Planner [Felipe Lalanne]
* Fix mermaid diagramming on search failures [Felipe Lalanne]
* Do not initialize objects for `create` actions [Felipe Lalanne]
* Improve input types for task constructors [Felipe Lalanne]
# v2.5.1
## (2023-12-01)
* Fix observe so new object assignments are also reported [Felipe Lalanne]
# v2.5.0
## (2023-11-29)
* Improve types to avoid unnecessary type conversions [Felipe Lalanne]
* Update mermaid tests [Felipe Lalanne]
* Convert Path type into a branded type [Felipe Lalanne]
# v2.4.1
## (2023-11-25)
* Return a copy of the state from agent runtime [Felipe Lalanne]
# v2.4.0
## (2023-11-24)
* Allow ignoring certain paths in Target construtor [Felipe Lalanne]
# v2.3.0
## (2023-11-23)
* Allow method actions to have empty effects [Felipe Lalanne]
# v2.2.0
## (2023-11-17)
* Add `metadata` method to mermaid trace object [Felipe Lalanne]
# v2.1.1
## (2023-11-17)
* Update default task descriptions [Felipe Lalanne]
# v2.1.0
## (2023-11-10)
* Revert changes to state if action fails [Felipe Lalanne]
# v2.0.0
## (2023-11-10)
* Make Agent maxRetries count failed plan runs [Felipe Lalanne]
# v1.2.0
## (2023-11-09)
* Improve logging messages [Felipe Lalanne]
* Add `diff` function to distance module [Felipe Lalanne]
* Add 'source' property to UpdateOperation [Felipe Lalanne]
* Rename Operation.value to Operation.target [Felipe Lalanne]
# v1.1.1
## (2023-11-08)
* Propagate state changes in parallel tasks [Felipe Lalanne]
# v1.1.0
## (2023-11-06)
* Add Target constructor [Felipe Lalanne]
# v1.0.1
## (2023-11-06)
* Export the Observable interface [Felipe Lalanne]
# v1.0.0
## (2023-10-31)
* Improve type documentation [Felipe Lalanne]
* Update README [Felipe Lalanne]
* Refactor View interface out of the lens module [Felipe Lalanne]
* Update test:compose script [Felipe Lalanne]
* Add maxSearchDepth planner option [Felipe Lalanne]
* Add Domain interface. [Felipe Lalanne]
* Fix agent heater tests leaking into each other [Felipe Lalanne]
* Improve Observable implementation [Felipe Lalanne]
* Fix mermaid tests for the new API [Felipe Lalanne]
* Fix planning utils tests [Felipe Lalanne]
* Improve pointer interface [Felipe Lalanne]
* Fix observable tests [Felipe Lalanne]
* Fix orchestrator tests [Felipe Lalanne]
* Rename `Diff` interface to `Distance` [Felipe Lalanne]
* Rename Target.DELETED to UNDEFINED [Felipe Lalanne]
* Fix Task tests [Felipe Lalanne]
* Fix composer tests [Felipe Lalanne]
* Use View instead of Ref for action and effect functions [Felipe Lalanne]
* Fix bug in Mermaid diagramming [Felipe Lalanne]
* Add zip test utility [Felipe Lalanne]
* Add default conditions for `create` and `delete` tasks [Felipe Lalanne]
* Add method `expansion` property [Felipe Lalanne]
* Update README examples with new API [Felipe Lalanne]
* Refactor Task API to use references and lenses [Felipe Lalanne]
* Create Ref type [Felipe Lalanne]
* Rename `Agent.of` to `Agent.from` [Felipe Lalanne]
* Rename `Planner.of` to `Planner.from` [Felipe Lalanne]
* Design v1 API [Felipe Lalanne]
# v0.21.2
## (2023-10-04)
* Fix bug when mapping effects [Felipe Lalanne]
# v0.21.1
## (2023-10-03)
* Fix bug with loop detection. [Felipe Lalanne]
# v0.21.0
## (2023-10-03)
* Make task action default to the value of the effect [Felipe Lalanne]
# v0.20.0
## (2023-09-30)
* Rename mermaid build method to `render` [Felipe Lalanne]
* Remove title as a mermaid graph argument [Felipe Lalanne]
* Fix bug when diagraming nested method calls [Felipe Lalanne]
# v0.19.0
## (2023-09-30)
* Fix Node ids in Mermaid test suite [Felipe Lalanne]
* Modify Action definition to return an Effect [Felipe Lalanne]
* Create the `Effect` type [Felipe Lalanne]
* Improve Observable API. [Felipe Lalanne]
* Remove .eslintrc.json [Felipe Lalanne]
# v0.18.2
## (2023-09-15)
* Add local prettierrc/eslintrc for editor compat [Felipe Lalanne]
# v0.18.1
## (2023-09-11)
* Update to @balena/lint v7 [Felipe Lalanne]
# v0.18.0
## (2023-09-06)
* Remove parallel tasks [Felipe Lalanne]
* Improve testing tools to work with parallel plans [Felipe Lalanne]
* Fix wrong assumption about action nodes in mermaid [Felipe Lalanne]
* Update diagramming feature to work with parallel tasks [Felipe Lalanne]
* Implement planning for parallel tasks [Felipe Lalanne]
* Convert Plan from a Linked List to a DAG [Felipe Lalanne]
* Refactor @mahler/testing sub-module [Felipe Lalanne]
* Add Parallel task support. [Felipe Lalanne]
# v0.17.2
## (2023-08-11)
* Fix bug with Context type inference [Felipe Lalanne]
# v0.17.1
## (2023-08-10)
* Move the method expansion check to findPlan [Felipe Lalanne]
# v0.17.0
## (2023-08-10)
* Ensure task ids are deterministic [Felipe Lalanne]
# v0.16.2
## (2023-08-10)
* Add test utility to generate mermaid graph [Felipe Lalanne]
* Simplify findPlan arguments [Felipe Lalanne]
# v0.16.1
## (2023-08-09)
* Use only relevant state for Node id generation [Felipe Lalanne]
# v0.16.0
## (2023-08-09)
* Add instruction serialization with toJSON [Felipe Lalanne]
* Formalize the plan trace interface [Felipe Lalanne]
# v0.15.0
## (2023-08-09)
* Expose planner API via mahler/planner [Felipe Lalanne]
* Move Plan types to planner/plan.ts [Felipe Lalanne]
# v0.14.0
## (2023-07-17)
* Do not generate hash for Instruction id [Felipe Lalanne]
* Use a linked list to represent a Plan [Felipe Lalanne]
* Rename tsconfig paths for more clarity [Felipe Lalanne]
* Create testing namespace to put test related utils [Felipe Lalanne]
* Add `path` and `target` to instructions [Felipe Lalanne]
# v0.13.2
## (2023-07-10)
* Improve planner loop detection [Felipe Lalanne]
# v0.13.1
## (2023-07-08)
* Allow action tasks to return an Observable [Felipe Lalanne]
# v0.13.0
## (2023-07-08)
* Remove RedirectTask [Felipe Lalanne]
* Remove `id` from valid task creation arguments [Felipe Lalanne]
# v0.12.0
## (2023-07-07)
* Remove the need for async `seek()` method in Agent [Felipe Lalanne]
* Make Agent into an Observable [Felipe Lalanne]
* Refactor agent runtime [Felipe Lalanne]
* Simplify the Agent interface [Felipe Lalanne]
* Simplify observable implementation [Felipe Lalanne]
* Move `equals` json helper outside of diff [Felipe Lalanne]
* Remove the `wait` function from observable [Felipe Lalanne]
* Remove callable syntax from Observable [Felipe Lalanne]
# v0.11.0
## (2023-06-23)
* Improve 'Initializer' helper task [Felipe Lalanne]
* Create NoOp helper [Felipe Lalanne]
* Allow returning single task from method [Felipe Lalanne]
* Improve default description for tasks [Felipe Lalanne]
* Add `path` property to Context type [Felipe Lalanne]
* Refactor task module [Felipe Lalanne]
* Move task.ts to task/index.ts [Felipe Lalanne]
# v0.10.0
## (2023-06-22)
* Add orchestrator test using redirect task [Felipe Lalanne]
* Add support for redirect tasks [Felipe Lalanne]
# v0.9.3
## (2023-06-22)
* Refactor planner module [Felipe Lalanne]
* Move lib/planner.ts to lib/planner/index.ts [Felipe Lalanne]
* Remove extractPath utility function from planner [Felipe Lalanne]
# v0.9.2
## (2023-06-19)
* Add service migration task to orchestrator example [Felipe Lalanne]
# v0.9.1
## (2023-06-19)
* Add usage information to README files [Felipe Lalanne]
# v0.9.0
## (2023-06-19)
* Add some documentation for examples under tests/ [Felipe Lalanne]
* Add release update to agent tests [Felipe Lalanne]
* Make Task context aware of the operation [Felipe Lalanne]
* Add `del()` function to context [Felipe Lalanne]
* Add orchestrator example/integration tests [Felipe Lalanne]
* Create utility tasks for operating on state [Felipe Lalanne]
* Improve diff calculation to return all possible ops [Felipe Lalanne]
* Improve Action/Method interfaces to be callable [Felipe Lalanne]
* Improve task types for testing [Felipe Lalanne]
* Split composer tests into multiple files [Felipe Lalanne]
# v0.8.1
## (2023-06-09)
* Remove tests from build [Felipe Lalanne]
# v0.8.0
## (2023-05-10)
* Refactor Diff interface [Felipe Lalanne]
# v0.7.0
## (2023-05-09)
* Refactor agent, split into multiple files [Felipe Lalanne]
# v0.6.0
## (2023-05-05)
* Make task description default to the id [Felipe Lalanne]
* Simplify task interface and remove unused code [Felipe Lalanne]
# v0.5.0
## (2023-05-05)
* Allow providing a planner instance to Agent init [Felipe Lalanne]
# v0.4.0
## (2023-05-05)
* Improve plan search trace logic [Felipe Lalanne]
* Refactor findPlan function of planne for readability [Felipe Lalanne]
* Refactor planner to return a result object [Felipe Lalanne]
* Rename Planner.plan to Planner.find [Felipe Lalanne]
* Make debug module a dev dependency [Felipe Lalanne]
* Simplify PlanNotFound error [Felipe Lalanne]
* Allow passing a debugging function to the planner [Felipe Lalanne]
# v0.3.0
## (2023-04-29)
* Change '*' to 'update' as default task operation [Felipe Lalanne]
# v0.2.0
## (2023-04-29)
* Add updating tasks to container composer tests [Felipe Lalanne]
* Add debugging to planning function [Felipe Lalanne]
* Calculate the target before planning [Felipe Lalanne]
* Split service tasks into install and start [Felipe Lalanne]
* Rename docker-compose test to container-compose [Felipe Lalanne]
# v0.1.0
## (2023-04-24)
* Add service to docker-compose to enable flowzone testing [Felipe Lalanne]
* Move default logger to its own module [Felipe Lalanne]
* Setup flowzone [Felipe Lalanne]
* Update package.json with repository metadata [Felipe Lalanne]