Commit graph

39 commits

Author SHA1 Message Date
jinliyl
041f957a7f
refactor(components) components and file I/O, fix method calls and validation (#268)
Some checks are pending
Pre-commit / run (ubuntu-latest) (push) Waiting to run
Tests ReMe / Unit Tests - py3.10 (push) Waiting to run
Tests ReMe / Unit Tests - py3.13 (push) Waiting to run
* refactor(components): extract shared component state into mixin

- Introduce ComponentMixin class with shared state for components and steps
- Move identity, config, and vault path functionality to ComponentMixin
- Update BaseComponent to inherit from ComponentMixin
- Update BaseStep to inherit from ComponentMixin
- Consolidate vault path helper methods in ComponentMixin
- Remove duplicate vault path implementations from BaseComponent and BaseStep
- Add ComponentMixin to components module exports

* refactor(file_io): implement path locks cache eviction mechanism

- Add _PATH_LOCKS_MAX constant set to 1024 for cache size limit
- Implement cache eviction logic when locks exceed maximum capacity
- Remove half of unlocked entries when cache limit is reached
- Use list comprehension to identify unlocked locks for removal
- Maintain existing path normalization and locking behavior

fix(edit): correct method call from public to private fail method

- Change self.fail to self._fail for internal error handling
- Maintain consistent private method usage within class

fix(mcp_client): change pop to get for optional command and args

- Replace kwargs.pop with kwargs.get to avoid removing keys
- Preserve original kwargs dictionary contents
- Maintain default empty string and list values

feat(reme): add client backend validation with error raising

- Check if client_cls is None before instantiation
- Raise ValueError with descriptive message for unknown backends
- Provide clear error feedback for invalid backend configurations

* fix(components): move directory creation to start method

- Moved component_metadata_path.mkdir call from __init__ to _start in base_keyword_index
- Moved component_metadata_path.mkdir call from __init__ to _start in local_file_graph
- Moved component_metadata_path.mkdir call from __init__ to _start in local_file_store
- Ensures directory creation happens after component initialization
- Prevents potential issues with path creation during object construction

* fix(steps): replace assertions with runtime errors for app_context validation

- Replace assert statements with explicit RuntimeError exceptions when app_context is None
- Add descriptive error messages for better debugging when resolving components
- Replace assert in resolve_component method with proper exception handling
- Replace assert in get_file_parser method with proper exception handling
- Maintain same functionality while improving error reporting clarity

* refactor(file_io): split file IO utilities into modular components

- Move daily note helpers to separate _daily_index module
- Extract path validation and resolution to new _path module
- Remove unused code and imports from _file_io module
- Update import statements across affected modules
- Introduce WikilinkHandler utility for link parsing
- Replace regex-based link extraction with WikilinkHandler
- Add integration JSONL files to gitignore
- Consolidate file locking mechanism in _file_io module

* style(formatter): fix spacing issues in file IO and chunked file parser

- Fixed whitespace around colon in slice notation in file_io.py
- Corrected spacing around colon in slice notation in chunked_file_parser.py
- Applied consistent formatting for array slicing operations
- Improved code readability by standardizing space placement in ranges

* refactor(steps): replace property-based component resolution with Ref descriptor

- Introduce Ref descriptor class for lazy component dependency resolution
- Replace _resolve method and individual properties with Ref descriptors
- Add as_llm, as_llm_formatter, as_token_counter, file_store, and embedding Ref attributes
- Remove legacy property methods and resolve logic from BaseStep
- Add cache clearing mechanism for Ref values during step calls
- Update UpdateCatalogStep to use Ref instead of property-based resolution
2026-06-01 11:35:19 +08:00
Sen Huang
7d0bec60be
feat: rename working_dir to vault_dir and update documentation (#254)
Some checks failed
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
Tests ReMe / Unit Tests - py3.10 (push) Has been cancelled
Tests ReMe / Unit Tests - py3.13 (push) Has been cancelled
* feat: rename working_dir to vault_dir and update documentation

- Rename working_dir to vault_dir across the application
- Update documentation to reflect vault_dir instead of working_dir
- Change FileFrontMatter title field to name field
- Update .gitignore to include vault directory
- Modify file path descriptions to reference vault instead of working_dir
- Update related configuration and property names accordingly

* refactor(steps): rename working_path to vault_path in CRUD operations

- Rename parameter from `working_path` to `vault_path` in `resolve_path` function
- Update all usages in append, edit, read, and write steps to use `self.vault_path`
- Update documentation comments to reflect the new parameter name
- Update docstring in read.py to mention `vault_dir` instead of `vault`

test(chunked_file_parser): update frontmatter field from title to name

- Change frontmatter field from `title` to `name` in test cases
- Update comment in background steps test to reference `vault_path` instead of `working_path`

* refactor(schema): remove unused ResourceEntry import

* feat(file_graph): add link scope filtering to get_inlinks/get_outlinks

* feat(file-store): add scope parameter to link methods
2026-05-22 18:10:29 +08:00
诸岳
0dff85b9b5
feat(store): seekdb file and vector stores via pyseekdb (embedded + remote) (#207)
* feat(seekdb): add Seekdb file and vector stores with pyseekdb>=1.2.0

* refactor(seekdb): add pyseekdb_conn and remote-only host/port config

* refactor(embedding): remove env fallbacks from BaseEmbeddingModel; pass credentials in tests

* refactor(seekdb): drop tenant from client kwargs; default database test and empty password

* fix(deps): gate pyseekdb to Python >=3.11 for CI 3.10 compatibility

* fix(seekdb): satisfy pre-commit pylint and formatting for seekdb stores
2026-05-22 10:55:48 +08:00
Sen Huang
357415dd49
feat: add Neo4j file graph support and markdown parser with wikilink extraction (#240)
* feat: add Neo4j file graph support and markdown parser with wikilink extraction

- Add Neo4jFileGraph implementation for property-graph storage with
  virtual/real node handling and link management
- Introduce LinkedFileParser for markdown files with frontmatter,
  wikilink graph extraction, and full-skeleton chunking
- Update pyproject.toml to include pyyaml, mistletoe, and neo4j
  dependencies
- Modify .gitignore to exclude /vault and structure.md
- Change reme CLI entry point from reme_ai.main to remecli.reme
- Register new neo4j and md components in respective registries

* refactor(file-graph): add chunk_ids support to Neo4jFileGraph

Add chunk_ids field to File node properties in Neo4jFileGraph to
enable better content chunk tracking and management.

BREAKING CHANGE: File node schema now includes chunk_ids property
which may affect existing integrations.

feat(parser): implement wikilink resolution logic

Move path resolution logic from utils/path_resolver to
linked_file_parser module and enhance wikilink resolution with
folder-note rule support and improved error handling.

fix(tests): update test assertions and variable names

Update test cases to reflect changes in data structures and
variable naming conventions across various components.

chore(config): update package entry point reference

Change reme CLI entry point from remecli.reme:main to
reme_ai.reme:main in pyproject.toml.

refactor(utils): remove deprecated path_resolver module

Remove the old path_resolver utility module as its functionality
has been moved to linked_file_parser.

docs(file-graph): update Neo4jFileGraph documentation

Update class docstrings and comments to reflect new chunk_ids
property and other structural changes.

style(formatting): adjust code formatting and line breaks

Minor formatting improvements including line length optimization
and consistent spacing adjustments throughout the codebase.

* fix(pyproject.toml): correct entry point for reme command

Change the entry point from "reme_ai.reme:main" to "reme_ai.main:main"
to fix the module reference for the reme command in project scripts.
2026-05-18 14:25:14 +08:00
jinli.yl
1dd81f9c25 refactor(core): update config parsing and memory management system 2026-02-06 15:02:41 +08:00
jinli.yl
c5438c52fc feat(memory): implement file watcher with delta and full sync strategies 2026-02-06 01:58:28 +08:00
jinli.yl
3989a3c1c4 refactor(memory): update memory target mappings and profile handling 2026-01-28 20:38:34 +08:00
jinli.yl
e77d228fae refactor(memory): update memory system with service context and vector store enhancements 2026-01-26 17:33:07 +08:00
jinli.yl
db510dd96e feat(bench): add human-in-the-loop evaluation framework for AI memory systems 2026-01-20 20:25:26 +08:00
jinli.yl
9f114cb9b4 feat(benchmark): add HaluMem evaluation suite with ReMe integration 2026-01-10 22:11:20 +08:00
jinli.yl
0b7843f557 feat(core): implement memory node tracking and embedding text truncation 2026-01-09 17:55:11 +08:00
jinli.yl
b421515c73 refactor(core): restructure context management and working memory modules 2025-11-24 21:17:02 +08:00
jinli.yl
1893ed3c37 feat(context): add test cases for ContextOffloadOp 2025-11-20 12:17:34 +08:00
jinli.yl
c314a82039 docs: update documentation structure and content 2025-10-23 17:58:25 +08:00
jinli.yl
3c64e46917 chore: update .gitignore to exclude site directory- Add 'site/*' to ignore generated site files 2025-10-22 12:25:20 +08:00
dengjiaji
10fef4e426 ignore .venv 2025-09-04 16:09:03 +08:00
jinli.yl
803c53fba1 docs(README): add comprehensive documentation for ReMe.ai framework
- Added detailed information about the project's architecture, installation, and usage
- Included sections on task memory and personal memory management
- Provided examples and use cases for the framework
- Updated project metadata and version information
2025-09-02 10:51:41 +08:00
jinli.yl
4739d39f3f feat(reme_ai): implement memory retrieval and merging functionality
- Add BuildQueryOp to construct query for memory retrieval-Implement MergeMemoryOp to combine retrieved memories
- Create RecallVectorStoreOp to fetch memories from vector store
- Develop memory representation and conversion methods
- Establish initial project structure and dependencies
2025-08-25 16:10:53 +08:00
zouying
a3f281f365 fix bug: the condition when use experience deletion 2025-08-20 12:02:54 +08:00
zouying
95b137b935 add: bfcl_quickstart 2025-08-19 16:33:16 +08:00
zouying
bb7ca27e42 add: update mechanism 2025-08-15 11:47:58 +08:00
zouying
463dc2e590 update: test update_experience_pool in bfcl 2025-08-13 15:32:18 +08:00
zouying
3c1b358e01 add: bfcl library 2025-08-12 19:53:33 +08:00
zouying
2e92f3c4c5 update gitignore 2025-08-12 19:45:21 +08:00
zouying
f1362aecb2 update gitignore 2025-08-12 19:31:44 +08:00
jinli.yl
0c176e1f27 add tavily search 2025-08-07 18:32:18 +08:00
jinli.yl
d36a214ec3 update vector store 2025-07-25 11:11:14 +08:00
jinli.yl
2bc5a6d67a [bugfix] BaseExperience -> TextExperience 2025-07-24 20:59:45 +08:00
jinli.yl
29b9c1a45d move to another folder 2025-07-24 16:09:59 +08:00
jinli.yl
dba2964323 add app react agent 2025-07-23 21:44:18 +08:00
jinli.yl
202f5a7d75 add appworld react 2025-07-23 19:49:02 +08:00
jinli.yl
404a783419 update experience maker 2025-07-01 16:52:07 +08:00
jinli.yl
5da12da545 add setup info 2025-06-18 14:16:27 +08:00
jinli.yl
ac228e7f66 update ignore 2025-06-17 21:06:56 +08:00
qingxu
7192619070 Merge branch 'main' of ssh://8.218.225.191:2424/root/exp-maker 2025-06-10 11:00:39 +08:00
青轩
8a360083a3 stage traj summarizer 2025-06-10 10:51:58 +08:00
jinli.yl
79a247e114 add unit test 2025-06-09 20:54:25 +08:00
jinli.yl
c894574575 add experience schema 2025-06-09 16:28:02 +08:00
jinli.yl
ef224979cc init 2025-06-05 19:21:01 +08:00