Commit graph

69 commits

Author SHA1 Message Date
huangsen
37f0037e6b feat(parser): add mistletoe dependency and refactor markdown parsing
Add mistletoe as a project dependency for enhanced markdown parsing
capabilities. Refactor the LinkedFileParser to use a proper AST-based
approach with MdNode tree structure, replacing the previous flat token
processing method. The new implementation provides better handling of
markdown elements including tables, code fences, lists, and headings,
with improved chunking logic that maintains document structure in
generated content segments.

The changes include:
- Add mistletoe dependency to pyproject.toml
- Implement proper AST node representation with MdNode class
- Create recursive chunking algorithm with TOC preservation
- Add support for frontmatter extraction with FileFrontMatter schema
- Optimize leaf node splitting with proper boundary detection
- Include part numbering for split content pieces
2026-05-13 16:00:36 +08:00
jinli.yl
819443813b feat(components): add token counter and file-based utility components
- Introduce BaseAsTokenCounter and EstimatedAsTokenCounter for token estimation
- Add AsMsgStat and AsBlockStat schema for message statistics tracking
- Implement FileIO class with read/write/append/edit operations
- Create file utility functions for safe async file reading and truncation
- Add MemorySearch component for semantic search in memory files
- Register new component types in ComponentEnum and update imports
- Add constants for default host, port, and truncation limits
- Create BaseService abstract base class for service implementations
- Implement BaseStep with component accessors and lifecycle management
- Add proper __all__ exports for all new modules and components
2026-04-16 11:15:23 +08:00
jinli.yl
c936c7a0fe chore(tests): remove unused argument pylint disable rule
Some checks failed
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
- Removed unused-argument pylint disable configuration
- Cleaned up tool.pylint.messages_control section from pyproject.toml
- Updated test configuration to use explicit ignore patterns instead of pylint disables
2026-04-14 16:44:57 +08:00
jinli.yl
5fc57e7f4e feat(core): refactor application architecture with new component base classes
- Add BaseClient, BaseFileStore, BaseFileWatcher, BaseJob, BaseService, and BaseStep classes
- Move component initialization logic from ApplicationContext to Application class
- Add logo printing and logging initialization in Application startup
- Create client module with base client implementation
- Add file store base class with embedding resolution and validation
- Implement file watcher base class with watchfiles integration
- Add job base class for sequential step execution orchestration
- Create service base class for job exposure mechanisms
- Refactor BaseStep with LLM workflow execution capabilities
- Add case converter utility for naming convention transformations
- Update import structure and module organization
- Add proper type hints and docstrings across all components
- Implement component registry integration for dynamic loading
- Add error handling for missing backend configurations
2026-04-14 16:43:36 +08:00
jinli.yl
4b5fb37b6a feat(core): add core components and architecture for ReMe CLI
Some checks are pending
Pre-commit / run (ubuntu-latest) (push) Waiting to run
- Implement BaseComponent with async lifecycle and context management
- Add ApplicationContext for managing component initialization and registry
- Create Application class for orchestrating job execution and lifecycle
- Add AS LLM components with OpenAI chat model wrapper
- Implement AS LLM formatter components with OpenAI formatter
- Add client implementations including base, HTTP and ReMe clients
- Create embedding model base class with caching and batching support
- Implement file store base class with vector and full-text search
- Add file watcher components for monitoring file system changes
- Create job components for executing workflows
- Implement service components for exposing jobs via different protocols
- Add configuration schema with ApplicationConfig and ComponentConfig
- Include utility modules for case conversion, chunking, logging and similarity
- Register component types and create component registry system
2026-04-13 23:51:59 +08:00
jinliyl
9ad8120959
feat(compactor): add extra instruction support and improve error handing (#190)
* feat(compactor): add extra instruction support and improve error handling

- Add extra_instruction parameter to compactor for custom guidance during message compaction
- Implement try-catch blocks around AS LLM initialization with detailed error logging
- Add extra_instruction parameter to ReMe.compact method with comprehensive documentation
- Update agentscope dependency from 1.0.17 to 1.0.18 in light installation
- Bump version number from 0.3.1.6 to 0.3.1.7
- Pass extra_instruction parameter through compactor instantiation and execution flow

* fix(core): add error handling for AS LLM formatters and token counters initialization

- Wrapped AS LLM formatters initialization in try-except blocks
- Added specific error logging for failed AS LLM formatter initialization
- Wrapped AS token counters initialization in try-except blocks
- Added specific error logging for failed AS token counter initialization
- Applied same error handling pattern to both initial setup and restart operations
- Maintained existing warning logs for unsupported backends
2026-03-31 16:22:39 +08:00
jinliyl
dc8eab56a1
refactor(core): replace text truncation utilities with new marker system (#179)
* refactor(core): replace text truncation utilities with new marker system

- Remove old truncate_text_utils module and its exports
- Replace TRUNCATION_MARKER_START with _TRUNCATION_NOTICE_MARKER constant
- Update as_msg_stat.py to split content using new marker format
- Modify FileIO tool to use TRUNCATION_NOTICE_MARKER for continuation hints
- Change is_truncated function checks to use marker presence detection
- Move transformers dependency from main deps to light extra dependencies
- Update tool result compactor tests to verify marker instead of is_truncated calls

* feat(file_io): enhance file operations with path resolution and append functionality

- Add expanduser() to resolve file paths with ~ symbol
- Implement proper file existence and type validation in update_file
- Add new append_file method to append content to files
- Update truncation notice format for better readability
- Fix typo in error message from "provide" to "provided"
- Update transformers dependency in pyproject.toml
- Remove duplicate transformers dependency from light extras

* refactor(file_io): disable pylint too-many-return-statements warning

* perf(file_watcher): increase default polling delay and optimize watcher configuration

- Increased default poll_delay_ms from 1000ms to 2000ms to reduce CPU usage
- Removed force_polling parameter as it's no longer needed with updated polling strategy
- Simplified async watch configuration by removing conditional force_polling logic
- Reduced overall system resource consumption during file watching operations

* refactor(memory): update conversation log documentation in memory summary

- Changed "Raw conversation logs" to "Earlier conversation logs" for clarity
- Added warning note about potentially large dialog file sizes
- Improved formatting with additional line break for better readability
- Maintained existing compressed summary integration unchanged

* feat(memory): add long-term memory support to file-based memory system

- Initialize _long_term_memory attribute as empty string
- Add memories section to content when long-term memory exists
- Consolidate summary and memories into single user message
- Format memories with markdown header # Memories
- Maintain existing compressed summary functionality
- Join multiple content parts with double newlines
2026-03-26 12:10:24 +08:00
jinli.yl
7f6bf11aab refactor(pyproject.toml): move flowllm dependency from core to litellm extra 2026-03-24 22:18:12 +08:00
jinliyl
cc11b77b27
chore(deps): update version and move litellm to dev dependencies (#176)
* chore(deps): update version and move litellm to dev dependencies

- Updated package version from 0.3.1.2 to 0.3.1.3
- Removed litellm from main dependencies in pyproject.toml
- Added litellm as fixed version dependency in dev group
- Maintained litellm requirement while reorganizing dependency structure

* chore(deps): move litellm dependency to full extras

- Moved litellm==1.80.0 from main dependencies to full extra
- Kept litellm as optional dependency for users needing full feature set
- Maintains backward compatibility for light installation option

* feat(pyproject): add litellm dependency to project configuration

- Added litellm==1.80.0 as optional dependency in pyproject.toml
- Created new litellm extra group for LiteLLM integration
- Updated full dependency group to include the new litellm option
2026-03-24 22:15:02 +08:00
jinliyl
9a6cf2b994
Dev/token (#159)
* update

* refactor(memory): remove unnecessary type check and update error logging

* refactor(core): standardize logger import and update agentscope dependency

* fix(memory): disable console output and add logging for summarizer component

* feat(core): replace OpenAI token counter with custom ReMe token counter

- Replace OpenAITokenCounter with ReMeTokenCounter implementation
- Add support for HuggingFace mirror and configurable tokenizer
- Register ReMeTokenCounter as default token counter in registry
- Update config to use hf backend with Qwen2.5-7B-Instruct model

refactor(memory): convert token counting methods to async in message handlers

- Change count_str_token, stat_message, count_msgs_token to async methods
- Update format_msgs_to_str and context_check to use async token counting
- Modify _format_tool_result_output to support async token counting
- Adjust all dependent methods to await async token counting calls

feat(memory): add dialog persistence to in-memory storage

- Implement _append_messages_to_dialog for saving messages to JSONL files
- Add dialog_path parameter to ReMeInMemoryMemory constructor
- Persist messages to daily JSONL files based on timestamp grouping
- Update mark_messages_compressed to save and remove compressed messages
- Modify clear_content to persist all messages before clearing memory

refactor(ops): update token counter type hints and initialization

- Change BaseOp to use HuggingFaceTokenCounter instead of TokenCounterBase
- Update type annotations for as_token_counter property and parameters
- Remove direct token counter injection from Compactor and ContextChecker
- Pass as_token_counter parameter through service context mechanism

style(logging): improve error logging with exception details

- Replace logger.error with logger.exception in browser control tool
- Change logger.error to logger.exception in memory get tool error handling
- Add proper exception logging with stack trace information

chore(config): add token counter configuration to light YAML

- Add as_token_counters section with default hf backend configuration
- Configure Qwen/Qwen2.5-7B-Instruct model with mirror support enabled
- Set up pretrained_model_name_or_path and use_mirror parameters

test(context): update context check tests to async implementation

- Convert verify_context_check_invariants to async function
- Update context check test methods to use async calls
- Change stat_message calls to await async implementation
- Modify test_empty_messages and test_below_threshold_returns_all to async

* feat(core): implement context checking and memory management features

* refactor(core): replace direct loguru import with logger utility function

* refactor(reme): remove RuntimeContext dependency and simplify context checking

* feat(docs): add raw conversation persistence to ReMe framework
2026-03-17 11:07:31 +08:00
jinliyl
9e2e98ef40
Dev/readme (#137)
* refactor(memory): rename copaw to reme and update module structure

* chore(release): bump version to 0.3.0.6b1

* refactor(docs): update README and ReMeLight implementation

* refactor(reme): rename ReMeCopaw to ReMeLight and remove CLI module

* docs(readme): update Chinese documentation with enhanced structure and content

* docs(readme): update Chinese documentation for context compression

* docs(readme): update context compression section header

* docs(readme): update documentation with installation and usage guide

* docs(readme): update Chinese documentation table

* chore(deps): update dependency extras configuration

* chore(test): remove deprecated test files for message operations

* docs(readme): update documentation with ReMeLight implementation changes
2026-03-04 18:43:21 +08:00
jinli.yl
58ca1f4fac fix(core): update version and enhance compactor execution with service context 2026-03-04 13:51:55 +08:00
jinli.yl
115373ab30 refactor(benchmark): remove unused llm config and update test parameters 2026-02-26 18:20:12 +08:00
jinli.yl
eae6c63d15 feat(cli): add ReMeCli class with interactive chat functionality 2026-02-11 17:23:15 +08:00
jinli.yl
82337ead33 feat(file-watcher): add file watching functionality with error handling 2026-02-08 21:37:55 +08:00
jinli.yl
f0bc2da7b0 feat(chat): add FsCli chat agent with streaming capabilities 2026-02-08 03:05:11 +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
6e72bcac2e refactor(memory): update memory registration and configuration handling 2026-01-29 14:18:53 +08:00
jinli.yl
78b993f830 refactor(core): restructure project modules and update base classes 2026-01-22 22:07:32 +08:00
jinli.yl
09d12c7d72 chore(deps): update flowllm dependency versions 2026-01-07 23:43:08 +08:00
jinli.yl
b3910319ce chore(deps): update flowllm dependencies to version 0.2.0.9 2026-01-06 15:11:59 +08:00
jinli.yl
38c972b270 chore(deps): add pre-commit to project dependencies 2025-12-31 09:48:13 +08:00
方应
37c59d49f2 feat(docs): add new contributor and paper reference
- Add Weikang Zhou as a contributor in pyproject.toml
- Update README.md with new author in software citation
- Add new paper reference for AgentscopeReMe framework
- Include arXiv link and publication details
- Add full author list for the research paper
- Update bibliography with proper formatting
2025-12-16 17:16:46 +08:00
Dengjiaji
2ab7dc0267 chore(version): update version to 0.2.0.4 2025-12-11 15:15:59 +08:00
jinli.yl
eed3b27324 chore(build): update package exclusion configuration 2025-12-04 20:51:14 +08:00
jinli.yl
d99d31cbff chore(version): bump package version to 0.2.0.3 2025-11-27 13:12:59 +08:00
jinli.yl
ef7e8052a2 chore(version): bump version to 0.2.0.2 2025-11-26 11:39:03 +08:00
jinli.yl
a093a9428d refactor(context): restructure file system operations and context compaction 2025-11-18 15:36:20 +08:00
jinli.yl
e92a8f7e0b chore(version): update project version to 0.2.0.0 2025-11-11 00:09:43 +08:00
jinli.yl
dec5e4cdaf refactor(schema): update import paths and versioning strategy 2025-11-07 17:01:48 +08:00
jinli.yl
73668f051e feat(core): add pre-commit hooks and improve module documentation 2025-11-07 14:14:11 +08:00
jinli.yl
2a28271457 build(project): bump version and update dependencies- Update project version from 0.1.10.8 to 0.2.0.0 2025-11-07 01:39:39 +08:00
jinli.yl
4dd90e4c7c chore(release): bump version to 0.10.8 2025-10-31 11:34:22 +08:00
jinli.yl
a4be28606b chore(version): bump version to 0.1.10.7 2025-10-28 15:17:00 +08:00
jinli.yl
7e82a3179e feat(reme_ai): update version to 0.1.10.6 and enhance tool memory operations 2025-10-27 21:12:11 +08:00
jinli.yl
02ed621b36 chore(release): bump version to 0.10.5 2025-10-27 17:23:02 +08:00
jinli.yl
b5ccd0eac1 chore(version): bump version to 0.10.4 2025-10-27 17:02:44 +08:00
jinli.yl
c314a82039 docs: update documentation structure and content 2025-10-23 17:58:25 +08:00
jinli.yl
ac72e6e021 feat(vector_store): add QdrantVectorStore implementation with async support
- Added QdrantVectorStore backend with native async operations
- Implemented advanced filtering capabilities for metadata queries
- Added support for Qdrant Cloud and local deployments- Updated vector store comparison table with Qdrant features
- Enhanced documentation with Qdrant setup and usage examples
- Fixed code block formatting in vector store API guide
- Updated embedding model integration for Qdrant compatibility
2025-10-23 17:15:12 +08:00
jinli.yl
da63cf9eae chore(version): bump version to 0.1.10.2 2025-10-22 22:02:44 +08:00
jinli.yl
1412fa9ed1 feat(reme): implement ReMeApp and decouple flowllm dependencies 2025-10-22 21:53:59 +08:00
jinli.yl
4697070068 chore(version): bump version to 0.1.10.1
- Updated __version__ in reme_ai/__init__.py
- Updated project version in pyproject.toml- Changed flowllm dependency to include reme extra
- Fixed typo in README.md query example
2025-10-22 20:24:55 +08:00
jinli.yl
49819a8e54 feat(tool): implement tool memory management and mock search tools- Added RetrieveToolMemoryOp for retrieving tool memory guidelines- Implemented LLM-based mock search tools with configurable complexity levels
- Enhanced tool call result parsing with improved scoring logic (0.0 or 1.0)
- Updated tool memory schema to reflect binary success/failure scoring
- Added deterministic behavior support via seed configuration in mock tools
- Improved evaluation prompts to focus on result quality over success flags
- Extended README with tool memory documentation and usage examples- Added utility functions for generating mock tool call results
- Removed deprecated test file for UseMockSearchOp- Updated default configurations to include use_mock_search operation- Bumped version to0.1.10 and updated flowllm dependency requirement
- Moved deprecation warnings to main init file
- Simplified tool memory summary formatting by removing redundant statistics
- Fixed tool call result processing to handle multiple tool names concurrently
2025-10-21 21:03:14 +08:00
jinli.yl
3d430c2d24 fix(app): update flowllm dependency and add environment variable check
- Update flowllm dependency to version 0.1.9
- Add environment variable check for FLOW_APP_NAME
2025-09-16 17:01:17 +08:00
jinliyl
560e746cea
reformat code, support flowllm 0.1.9 (#26)
* reformat code, support flowllm 0.1.9

* Update README.md

add FLOW_USE_FRAMEWORK=true

* Update README_ZH.md

add FLOW_USE_FRAMEWORK=true

* Update index.md

add FLOW_USE_FRAMEWORK=true

* add env FLOW_APP_NAME=ReMe
2025-09-16 16:49:56 +08:00
jinli.yl
564df4e9e5 build: bump version to 0.1.8 and update dependencies
- Update package version from 0.1.7 to 0.1.8
- Upgrade minimum Python version to 3.12
- Update flowllm dependency to version 0.1.8
2025-09-08 16:30:03 +08:00
jinli.yl
8d407b4ed9 refactor(config): update data types in default.yaml and upgrade flowllm dependency
- Change 'str' to 'string' for consistency in data types
- Rename 'list' to 'array' for JSON compatibility
- Update 'bool' to 'boolean' and 'int' to 'integer' for standardization
- Upgrade flowllm dependency from >=0.1.6 to >=0.1.7
2025-09-08 15:55:25 +08:00
jinli.yl
f93ae5c3e5 refactor(memory): update message handling and bump version
- Update message variable from 'messages' to 'new_messages' in memory services
- Bump package version from 0.1.6 to 0.1.7
- Update FlowLLM dependency version from >=0.1.5 to >=0.1.6
2025-09-07 18:26:10 +08:00
jinli.yl
2b3724b69b build: bump version to 0.1.6
- Update version in __init__.py and pyproject.toml
2025-09-07 16:08:32 +08:00
jinli.yl
a5efdd7427 build(deps): update flowllm dependency to version >= 0.1.5
- Change flowllm dependency from == 0.1.5 to >= 0.1.5 in pyproject.toml
- This allows using versions of flowllm that are newer than 0.1.5
2025-09-07 16:02:38 +08:00