* CrashDir: store povs in <crash-token>/<sanitizer>
In Redis we were already differentiating between different sanitizers,
however we were storing all PoVs with the same crash-token in the same
directory, indipendently of the sanitizer that triggered the bug.
However, this information is necessary for the patcher that has to
reproduce the PoVs.
* patcher: builds the patch for multiple sanitizers
* tested
* fix Tuple
* Use original challenge only if same san
* fix lint
* patcher: update langgraph dependencies
* patcher: remove 'messages' from State because not used
* patcher: change CodeSnippetKey to use lines instead of IDs
* patcher: improve ContextRetrieverAgent
- use RunnableConfig and PatcherConfig to pass configuration options
more easily
- make the state serializable, so that we can use CheckPointer to save
and restore an agent state and get code snippets more easily in case
of failures
- add tests
- use prebuilt React agent for simplicity
- allow to track lines from a file
* patcher: move all agents to new CodeSnippetKey
* patcher: group patch attempts in a single class
* patcher: remove diff_analysis from state because unused
* patcher: make more use of PatcherConfig
* patcher: add patch description
* patcher: use renamed patch_attempts
* patcher: go back to identifier (random) for CodeSnippets
* patcher: parse stacktrace for initial context
* common: fix parse_stacktrace return type
* patcher: introduce reflection agenta and remove reviewer
* patcher: use structured rootcause analysis
* patcher: paralellize ctx requests
* patcher: have some best-effort json parser for rootcause
* tmp comit
* fix tests
* a few other fixes
* fix lint
* add libxml2 script
* patcher: remove some dead code
* ctx-retriever: use smaller models
* fix tests
* improve initial context
* add comment
* patcher: remove dead code
* fix none access
* other random fixes