rlm-code 0.1.2__tar.gz → 0.1.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rlm_code-0.1.2 → rlm_code-0.1.6}/CHANGELOG.md +3 -3
- {rlm_code-0.1.2 → rlm_code-0.1.6}/PKG-INFO +2 -2
- {rlm_code-0.1.2 → rlm_code-0.1.6}/README.md +1 -1
- {rlm_code-0.1.2 → rlm_code-0.1.6}/pyproject.toml +1 -1
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/__init__.py +1 -1
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/slash_commands.py +1 -3
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/harness/registry.py +8 -7
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/harness/runner.py +3 -1
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/__init__.py +1 -1
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/benchmark_manager.py +11 -13
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_harness_runner.py +3 -1
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_provider_registry.py +6 -1
- {rlm_code-0.1.2 → rlm_code-0.1.6}/.gitignore +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/LICENSE +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/NOTICE +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/agent.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/agents/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/agents/rlm_agent.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/callbacks/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/callbacks/code_execution.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/cli.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/code_executor.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/events.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/base.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/lazy.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/loader.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/parsers/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/parsers/base.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/parsers/pdf.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/parsers/text.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/sources/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/sources/base.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/sources/gcs.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/files/sources/local.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/llm.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/logging/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/logging/rlm_logger.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/logging/verbose.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/main.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/prompts.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/repl/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/repl/local_repl.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/repl/safe_builtins.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/templates/index.html +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/tools/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/types.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/usage.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/adk_rlm/web.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/eval/packs/README.md +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/__main__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/config_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/create_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/demo_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/export_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/init_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/interactive_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/mcp_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/models_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/nl_command_router.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/optimize_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/commands/run_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/core/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/core/config.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/core/debug_logger.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/core/directory_utils.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/core/exceptions.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/core/logging.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/core/venv_utils.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/core/version_checker.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/examples/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/examples/phase2_demo.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/examples/phase3_demo.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/examples/phase4_demo.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/examples/pure_rlm_demo.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/execution/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/execution/engine.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/execution/sandbox.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/export/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/export/handler.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/export/package_builder.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/generators/evaluation_generator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/generators/gepa_generator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/harness/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/main.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/client_manager.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/config.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/exceptions.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/retry.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/server/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/server/rlm_server.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/server/tools.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/session_wrapper.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/transports/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/transports/factory.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/transports/sse_transport.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/transports/stdio_transport.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/transports/websocket_transport.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/mcp/utils.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/cache.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/code_generator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/dspy_reference_loader.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/llm_connector.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/model_manager.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/providers/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/providers/acp_discovery.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/providers/local_discovery.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/providers/model_catalog.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/providers/registry.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/streaming.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/models/task_collector.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/optimization/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/optimization/data_collector.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/optimization/executor.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/optimization/workflow_manager.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/project/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/project/context_manager.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/project/dspy_md_generator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/project/initializer.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/project/scanner.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/py.typed +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/action_planner.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/approval/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/approval/audit.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/approval/gate.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/approval/handlers.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/approval/policy.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/benchmarks.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/chat_session.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/code_interpreter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/comparison.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/config_schema.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/context_store.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/delegation.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/docker_interpreter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/environments.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/events.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/frameworks/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/frameworks/adk_rlm_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/frameworks/base.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/frameworks/deepagents_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/frameworks/dspy_rlm_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/frameworks/google_adk_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/frameworks/pydantic_ai_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/frameworks/registry.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/leaderboard.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/memory_compaction.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/mock_interpreter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/monty_interpreter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/observability.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/observability_sinks.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/policies/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/policies/action_policies.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/policies/base.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/policies/compaction_policies.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/policies/registry.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/policies/reward_policies.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/policies/termination_policies.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/pure_rlm_environment.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/repl_types.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/research_tui/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/research_tui/theme.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/research_tui/widgets/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/research_tui/widgets/animated.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/research_tui/widgets/panels.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/runner.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/session_replay.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/task_signature.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/termination.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/trajectory.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/rlm/visualizer.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/apple_container_runtime.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/base.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/cloud/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/cloud/daytona_runtime.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/cloud/e2b_runtime.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/cloud/modal_runtime.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/command_runtime.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/docker_runtime.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/local_runtime.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/monty_runtime.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/runtimes/registry.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/sandbox/superbox.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/session/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/session/state_manager.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/.env.example +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/adapters.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/async_streaming.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/complete_programs.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/dspy_config_example.yaml +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/evaluation.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/industry_templates.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/optimizers.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/retrievers.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/templates/rlm_benchmarks_example.yaml +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/tests/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/tests/rlm/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/tests/rlm/test_phase2.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/tests/rlm/test_pure_rlm.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/agent_collab_view.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/animations.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/conversation.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/design_system.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/diff_viewer.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/notifications.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/persistent_shell.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/prompt_widget.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/prompts.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/pty_terminal.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/resizable_divider.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/thinking_display.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/tui_app.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/tui_utils.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/ui/welcome.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/anti_patterns.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/auto_fixer.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/best_practices.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/code_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/config_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/exceptions.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/input_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/learning_integration.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/models.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/module_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/predictor_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/quality_scorer.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/report_generator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/security.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/security_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/signature_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/rlm_code/validation/validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/__init__.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/conftest.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/fixtures/rlm_ci_baseline_generic_smoke.json +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_adk_rlm_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_code_interpreter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_deepagents_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_dspy_rlm_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_extract_fallback.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_framework_registry_coverage.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_google_adk_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_leaderboard.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_mock_interpreter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_monty_interpreter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_observability_sinks.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_p0_features.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_phase3.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_phase4.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_pure_rlm_runtime_modes.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_pydantic_ai_adapter.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_repl_history.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_security_hardening.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_session_replay.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_submit.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_task_signature.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/rlm/test_user_tools.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_anti_patterns.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_auto_fixer.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_cache.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_execution_engine.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_export_import.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_harness_registry.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_init_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_integration.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_learning_integration.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_mcp_utils.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_module_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_optimization_workflow.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_persistent_shell.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_predictor_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_project_scanner.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_prompt_widget.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_property_validators.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_provider_discovery.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_quality_scorer.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_report_generator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_retry.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_rlm_config.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_rlm_dspy_environment.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_rlm_observability.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_rlm_runner.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_sandbox_runtimes.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_security_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_session_management.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_signature_validator.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_slash_harness_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_slash_rlm_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_slash_sandbox_command.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_streaming.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_superbox.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_tui_utils.py +0 -0
- {rlm_code-0.1.2 → rlm_code-0.1.6}/tests/test_validation.py +0 -0
|
@@ -5,7 +5,7 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [0.1.
|
|
8
|
+
## [0.1.6] - 2026-02-20
|
|
9
9
|
|
|
10
10
|
### Added
|
|
11
11
|
- Harness strategy selector with `tool_call` (default) and opt-in `codemode`.
|
|
@@ -29,7 +29,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
29
29
|
- Added explicit CodeMode guardrail policy documentation with blocked API classes and runtime limit defaults.
|
|
30
30
|
- Codemode path remains opt-in; default harness behavior remains strict baseline `strategy=tool_call`.
|
|
31
31
|
|
|
32
|
-
## [0.1.
|
|
32
|
+
## [0.1.5] - 2026-02-15
|
|
33
33
|
|
|
34
34
|
Initial public release of **RLM Code**.
|
|
35
35
|
|
|
@@ -55,4 +55,4 @@ Initial public release of **RLM Code**.
|
|
|
55
55
|
- Unsafe local `exec` usage preserved only as an explicit, opt-in path for advanced development scenarios.
|
|
56
56
|
|
|
57
57
|
[0.1.5]: https://github.com/SuperagenticAI/rlm-code/releases/tag/v0.1.5
|
|
58
|
-
[0.1.
|
|
58
|
+
[0.1.6]: https://github.com/SuperagenticAI/rlm-code/releases/tag/v0.1.6
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rlm-code
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
4
4
|
Summary: RLM Code: Research Playground & Evaluation OS for Recursive Language Model Agentic Systems
|
|
5
5
|
Project-URL: Homepage, https://github.com/SuperagenticAI/rlm-code
|
|
6
6
|
Project-URL: Documentation, https://superagenticai.github.io/rlm-code/
|
|
@@ -118,7 +118,7 @@ RLM Code implements the [Recursive Language Models](https://arxiv.org/abs/2502.0
|
|
|
118
118
|
|
|
119
119
|
RLM Code wraps this algorithm in an interactive terminal UI with built-in benchmarks, trajectory replay, and observability.
|
|
120
120
|
|
|
121
|
-
## Release v0.1.
|
|
121
|
+
## Release v0.1.6
|
|
122
122
|
|
|
123
123
|
This release adds the new CodeMode path as an opt-in harness strategy.
|
|
124
124
|
|
|
@@ -25,7 +25,7 @@ RLM Code implements the [Recursive Language Models](https://arxiv.org/abs/2502.0
|
|
|
25
25
|
|
|
26
26
|
RLM Code wraps this algorithm in an interactive terminal UI with built-in benchmarks, trajectory replay, and observability.
|
|
27
27
|
|
|
28
|
-
## Release v0.1.
|
|
28
|
+
## Release v0.1.6
|
|
29
29
|
|
|
30
30
|
This release adds the new CodeMode path as an opt-in harness strategy.
|
|
31
31
|
|
|
@@ -1600,9 +1600,7 @@ class SlashCommandHandler:
|
|
|
1600
1600
|
show_warning_message("strategy=codemode requires mcp=on. Enabling MCP.")
|
|
1601
1601
|
include_mcp = True
|
|
1602
1602
|
if strategy == "codemode" and allowlist:
|
|
1603
|
-
show_warning_message(
|
|
1604
|
-
"tools=... allowlist is ignored for strategy=codemode."
|
|
1605
|
-
)
|
|
1603
|
+
show_warning_message("tools=... allowlist is ignored for strategy=codemode.")
|
|
1606
1604
|
allowlist = None
|
|
1607
1605
|
|
|
1608
1606
|
console.print()
|
|
@@ -333,7 +333,10 @@ class HarnessToolRegistry:
|
|
|
333
333
|
normalized_server = server_name.strip().lower()
|
|
334
334
|
normalized_tool = tool_name.strip().lower()
|
|
335
335
|
|
|
336
|
-
if
|
|
336
|
+
if (
|
|
337
|
+
self._mcp_allowed_servers is not None
|
|
338
|
+
and normalized_server not in self._mcp_allowed_servers
|
|
339
|
+
):
|
|
337
340
|
return (
|
|
338
341
|
False,
|
|
339
342
|
f"MCP tool '{full_name}' blocked by MCP policy (server '{server_name}' not allowed).",
|
|
@@ -351,11 +354,7 @@ class HarnessToolRegistry:
|
|
|
351
354
|
if include_mcp and self.mcp_manager is not None:
|
|
352
355
|
mcp_specs = self._list_mcp_specs()
|
|
353
356
|
if self._mcp_allowed_tools is not None or self._mcp_allowed_servers is not None:
|
|
354
|
-
mcp_specs = [
|
|
355
|
-
row
|
|
356
|
-
for row in mcp_specs
|
|
357
|
-
if self._is_mcp_tool_allowed(row.name)[0]
|
|
358
|
-
]
|
|
357
|
+
mcp_specs = [row for row in mcp_specs if self._is_mcp_tool_allowed(row.name)[0]]
|
|
359
358
|
specs = list(specs_map.values())
|
|
360
359
|
specs.extend(mcp_specs)
|
|
361
360
|
alias_candidates: dict[str, list[HarnessToolSpec]] = {}
|
|
@@ -985,7 +984,9 @@ def _domain_allowed(*, domain: str, allowed_domains: set[str], blocked_domains:
|
|
|
985
984
|
return False
|
|
986
985
|
if blocked_domains and any(domain == d or domain.endswith(f".{d}") for d in blocked_domains):
|
|
987
986
|
return False
|
|
988
|
-
if allowed_domains and not any(
|
|
987
|
+
if allowed_domains and not any(
|
|
988
|
+
domain == d or domain.endswith(f".{d}") for d in allowed_domains
|
|
989
|
+
):
|
|
989
990
|
return False
|
|
990
991
|
return True
|
|
991
992
|
|
|
@@ -250,7 +250,9 @@ class HarnessRunner:
|
|
|
250
250
|
mcp_tool_allowlist=mcp_tool_allowlist,
|
|
251
251
|
mcp_server=mcp_server,
|
|
252
252
|
)
|
|
253
|
-
server_name = self._resolve_codemode_server(
|
|
253
|
+
server_name = self._resolve_codemode_server(
|
|
254
|
+
tool_rows=tool_rows, requested_server=mcp_server
|
|
255
|
+
)
|
|
254
256
|
if not server_name:
|
|
255
257
|
return HarnessRunResult(
|
|
256
258
|
completed=False,
|
|
@@ -174,7 +174,11 @@ class BenchmarkManagerMixin:
|
|
|
174
174
|
"""Execute a benchmark preset and persist aggregate summary."""
|
|
175
175
|
resolved_mode = self._normalize_benchmark_mode(mode)
|
|
176
176
|
resolved_harness_strategy = self._normalize_harness_strategy(harness_strategy)
|
|
177
|
-
if
|
|
177
|
+
if (
|
|
178
|
+
resolved_mode == "harness"
|
|
179
|
+
and resolved_harness_strategy == "codemode"
|
|
180
|
+
and not include_mcp
|
|
181
|
+
):
|
|
178
182
|
logger.warning("Harness codemode strategy requires MCP; enabling include_mcp.")
|
|
179
183
|
include_mcp = True
|
|
180
184
|
benchmark_id = datetime.now(timezone.utc).strftime("bench_%Y%m%d_%H%M%S_%f")
|
|
@@ -291,11 +295,7 @@ class BenchmarkManagerMixin:
|
|
|
291
295
|
"mode": resolved_mode,
|
|
292
296
|
"mcp_enabled": bool(include_mcp) if resolved_mode == "harness" else False,
|
|
293
297
|
"mcp_server": str(mcp_server) if (resolved_mode == "harness" and mcp_server) else None,
|
|
294
|
-
"harness_strategy": (
|
|
295
|
-
resolved_harness_strategy
|
|
296
|
-
if resolved_mode == "harness"
|
|
297
|
-
else None
|
|
298
|
-
),
|
|
298
|
+
"harness_strategy": (resolved_harness_strategy if resolved_mode == "harness" else None),
|
|
299
299
|
"source": extra_sources.get(str(preset).strip().lower(), "builtin"),
|
|
300
300
|
"description": extra_descriptions.get(str(preset).strip().lower(), ""),
|
|
301
301
|
"pack_paths": [str(item) for item in (pack_paths or self._benchmark_pack_paths)],
|
|
@@ -961,12 +961,11 @@ class BenchmarkManagerMixin:
|
|
|
961
961
|
for step in tool_steps:
|
|
962
962
|
if step.tool_result is None:
|
|
963
963
|
continue
|
|
964
|
-
metadata =
|
|
964
|
+
metadata = (
|
|
965
|
+
step.tool_result.metadata if isinstance(step.tool_result.metadata, dict) else {}
|
|
966
|
+
)
|
|
965
967
|
resolved_name = str(
|
|
966
|
-
metadata.get("tool_full_name")
|
|
967
|
-
or metadata.get("resolved_tool")
|
|
968
|
-
or step.tool
|
|
969
|
-
or ""
|
|
968
|
+
metadata.get("tool_full_name") or metadata.get("resolved_tool") or step.tool or ""
|
|
970
969
|
).strip()
|
|
971
970
|
if resolved_name.startswith("mcp:"):
|
|
972
971
|
mcp_tool_calls += 1
|
|
@@ -982,8 +981,7 @@ class BenchmarkManagerMixin:
|
|
|
982
981
|
):
|
|
983
982
|
codemode_discovery_calls += 1
|
|
984
983
|
codemode_guardrail_blocked = any(
|
|
985
|
-
str(step.action) == "codemode_plan"
|
|
986
|
-
and "guardrail" in str(step.reasoning or "").lower()
|
|
984
|
+
str(step.action) == "codemode_plan" and "guardrail" in str(step.reasoning or "").lower()
|
|
987
985
|
for step in result.steps
|
|
988
986
|
)
|
|
989
987
|
return {
|
|
@@ -156,7 +156,9 @@ def test_harness_run_supports_codemode_strategy(tmp_path: Path) -> None:
|
|
|
156
156
|
manager = _CodeModeMCPManager()
|
|
157
157
|
runner = HarnessRunner(llm_connector=connector, mcp_manager=manager, workdir=tmp_path)
|
|
158
158
|
|
|
159
|
-
result = runner.run(
|
|
159
|
+
result = runner.run(
|
|
160
|
+
task="Get weather in SF", strategy="codemode", include_mcp=True, max_steps=4
|
|
161
|
+
)
|
|
160
162
|
|
|
161
163
|
assert result.completed is True
|
|
162
164
|
assert "San Francisco" in result.final_response
|
|
@@ -186,9 +186,14 @@ def test_connector_supported_provider_metadata_includes_connection_type(tmp_path
|
|
|
186
186
|
assert isinstance(openai["example_models"], list)
|
|
187
187
|
|
|
188
188
|
|
|
189
|
-
def test_connector_uses_superqode_model_catalog(tmp_path: Path):
|
|
189
|
+
def test_connector_uses_superqode_model_catalog(tmp_path: Path, monkeypatch):
|
|
190
190
|
"""Provider model list should align with SuperQode catalog where available."""
|
|
191
191
|
connector = make_connector(tmp_path)
|
|
192
|
+
monkeypatch.setattr(
|
|
193
|
+
connector,
|
|
194
|
+
"_list_opencode_models_cached",
|
|
195
|
+
lambda timeout=0.6: [],
|
|
196
|
+
)
|
|
192
197
|
|
|
193
198
|
openai_models = connector.list_provider_example_models("openai", limit=3)
|
|
194
199
|
gemini_models = connector.list_provider_example_models("gemini", limit=2)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|