steerable-agent-runtime 0.6.39__tar.gz → 0.6.41__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.
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/PKG-INFO +3 -2
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/pyproject.toml +3 -2
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/antihallucination.py +1 -4
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/calibration.py +1 -1
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/compaction.py +2 -3
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/loop.py +4 -8
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/tokens.py +2 -2
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime.egg-info/PKG-INFO +3 -2
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime.egg-info/requires.txt +1 -1
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_pyo3_api_surface.py +2 -17
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/README.md +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/setup.cfg +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/__init__.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/approval.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/approval_policy.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/ask_user.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/branch.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/cache_control.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/compaction_policy.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/config.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/default.harness.json +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/default.harness.yaml +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/delegation_gate.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/errors.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/gateway_catalog.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/handoff.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/harness.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/harness_spec.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/history.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/hooks.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/__init__.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/anthropic_native.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/compat.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/errors.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/google_genai.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/openai_compat.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/openai_responses.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/parts.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/presets.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/llm/system_proxy.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/maintenance.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/mcp.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/mcp_server.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/model_catalog.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/model_info.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/model_resolve.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/native_bridge.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/observation_aging.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/orchestration.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/otel.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/plugins.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/pool.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/pricing.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/pseudo.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/recording.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/reminders.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/replay.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/resume.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/retry.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/sandboxed.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/skills.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/spill.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/storage/__init__.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/storage/in_memory.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/storage/sqlalchemy_store.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/storage/sqlite_store.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/storage/write_lease.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/subagent.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/todo.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/tool_schema.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/tool_search.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/tools.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/tracing.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/transport/__init__.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/transport/fastapi_sse.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/transport/stdio_jsonrpc.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/world_state.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime.egg-info/SOURCES.txt +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime.egg-info/dependency_links.txt +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime.egg-info/top_level.txt +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_antihallucination.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_approval.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_approval_policy.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_ask_user.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_branch.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_cache_control.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_cache_instrumentation.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_calibration.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_compaction.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_compaction_policy.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_compaction_strategy.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_config.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_content_parts.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_delegation_gate.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_error_taxonomy.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_fragment_bounds.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_gateway_catalog.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_golden.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_handoff.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_harness.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_harness_spec.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_history.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_history_persistence.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_hooks.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_in_memory_storage.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_llm_gemini_wire.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_llm_responses_wire.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_llm_stream_e2e.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_llm_wire_helpers.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_long_session.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_loop.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_loop_cancellation.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_loop_replay.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_loop_sandbox_event.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_loop_terminal.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_maintenance.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_mcp.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_mcp_server.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_model_catalog.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_model_equivalence.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_model_info.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_model_resolve.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_native_default.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_observation_aging.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_orchestration.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_otel.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_parallel_tools.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_plugins.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_provider_compat.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_provider_presets.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_pseudo.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_recording.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_reminders.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_replay_crosslang.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_resume.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_retry_hooks.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_safety_gate.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_sandboxed.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_skills.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_soft_timeout.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_spill.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_sqlite_storage.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_steer.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_storage_contract.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_stream_strip.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_subagent.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_system_proxy.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_todo.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_todo_gate.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_tokens.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_tool_exposure.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_tool_hygiene.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_tool_router.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_tool_schema.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_tool_timeout.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_trace_recorder.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_transport_jsonrpc.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_transport_sse.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_usage_attribution.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_world_state.py +0 -0
- {steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_write_lease.py +0 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: steerable-agent-runtime
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.41
|
|
4
4
|
Summary: Steerable agent runtime: LLM, tool, storage, and transport adapters.
|
|
5
|
+
License: Apache-2.0
|
|
5
6
|
Requires-Python: >=3.10
|
|
6
7
|
Description-Content-Type: text/markdown
|
|
7
8
|
Requires-Dist: pydantic>=2.10.0
|
|
8
9
|
Requires-Dist: steerable-agent-protocol<1.0.0,>=0.1.0
|
|
9
10
|
Requires-Dist: steerable-agent-harness<1.0.0,>=0.1.0
|
|
10
|
-
Requires-Dist: steerable-agent-runtime-native==0.6.
|
|
11
|
+
Requires-Dist: steerable-agent-runtime-native==0.6.39
|
|
11
12
|
Provides-Extra: sqlalchemy
|
|
12
13
|
Requires-Dist: sqlalchemy>=2.0; extra == "sqlalchemy"
|
|
13
14
|
Provides-Extra: fastapi
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "steerable-agent-runtime"
|
|
3
|
-
version = "0.6.
|
|
3
|
+
version = "0.6.41"
|
|
4
4
|
description = "Steerable agent runtime: LLM, tool, storage, and transport adapters."
|
|
5
|
+
license = { text = "Apache-2.0" }
|
|
5
6
|
readme = "README.md"
|
|
6
7
|
requires-python = ">=3.10"
|
|
7
8
|
# Pre-1.0 inter-package pins use `>=X,<1.0.0` ranges — flexible enough
|
|
@@ -15,7 +16,7 @@ dependencies = [
|
|
|
15
16
|
"pydantic>=2.10.0",
|
|
16
17
|
"steerable-agent-protocol>=0.1.0,<1.0.0",
|
|
17
18
|
"steerable-agent-harness>=0.1.0,<1.0.0",
|
|
18
|
-
"steerable-agent-runtime-native==0.6.
|
|
19
|
+
"steerable-agent-runtime-native==0.6.39",
|
|
19
20
|
]
|
|
20
21
|
|
|
21
22
|
[project.optional-dependencies]
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
"""Anti-hallucination layer
|
|
2
|
-
(`local-backend/deferred-detector.ts` / `turn-router.ts` / `grounding-judge.ts`
|
|
3
|
-
+ the discipline-retry / narration wiring in `router.ts`) and sunk into
|
|
4
|
-
CoreLoop as a ``LoopHooks`` implementation.
|
|
1
|
+
"""Anti-hallucination layer implemented as a ``LoopHooks`` extension.
|
|
5
2
|
|
|
6
3
|
Four capabilities, all fail-open / fail-conservative and bounded:
|
|
7
4
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Usage calibration — per-request estimated-vs-observed token recording.
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The aggregate regression can only resolve
|
|
4
4
|
one global factor per model family: day-level cjk/other character sums are
|
|
5
5
|
collinear (r=0.88), so per-char coefficients are not identifiable from
|
|
6
6
|
aggregates. Per-request pairs are. This module closes that loop:
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"""Context compaction — a ``pre_step`` hook.
|
|
2
2
|
|
|
3
|
-
Local models run
|
|
4
|
-
|
|
5
|
-
check pressure before the request is derived, and when over threshold rewrite
|
|
3
|
+
Local models often run with small context windows; a few rounds of verbose
|
|
4
|
+
tool output can fill them. Check pressure before the request is derived, and when over threshold rewrite
|
|
6
5
|
the transcript so the turn can continue.
|
|
7
6
|
|
|
8
7
|
Strategy (deterministic first, LLM optional):
|
|
@@ -9,7 +9,7 @@ module keeps the public `CoreLoop` API, configuration, events, history
|
|
|
9
9
|
seeding, and the Python I/O ports the engine calls back into (provider,
|
|
10
10
|
executor, hooks).
|
|
11
11
|
|
|
12
|
-
Implemented
|
|
12
|
+
Implemented surface (see docs/spec/core-loop.md):
|
|
13
13
|
* inner loop state machine and round control (Rust)
|
|
14
14
|
* LLM stream consumption (via LLMProvider) with display hygiene:
|
|
15
15
|
UTF-16 surrogate-pair carry and streaming pseudo/echo-block stripping
|
|
@@ -244,10 +244,7 @@ class LoopContext:
|
|
|
244
244
|
class LoopConfig:
|
|
245
245
|
"""Tunables for one loop run.
|
|
246
246
|
|
|
247
|
-
`max_tool_errors` uses
|
|
248
|
-
docs/spec/core-loop.md "Known semantic divergences": deeppath-agent counts
|
|
249
|
-
consecutive, deeppath-api counts cumulative; CoreLoop standardizes on
|
|
250
|
-
consecutive and makes the threshold configurable.
|
|
247
|
+
`max_tool_errors` uses consecutive semantics and resets on success.
|
|
251
248
|
"""
|
|
252
249
|
|
|
253
250
|
max_rounds: int = 32
|
|
@@ -309,9 +306,8 @@ class LoopConfig:
|
|
|
309
306
|
reasoning_without_progress_chars: int | None = None
|
|
310
307
|
#: Block re-issuing an identical ``(name, args)`` call within one run.
|
|
311
308
|
#: Deterministic tools return identical output for identical input, so a
|
|
312
|
-
#: repeat only burns tokens and can push the model into a retry loop
|
|
313
|
-
#:
|
|
314
|
-
#: tool-error breaker). No write/destructive exemption — idempotency of
|
|
309
|
+
#: repeat only burns tokens and can push the model into a retry loop. It
|
|
310
|
+
#: counts toward the consecutive tool-error breaker. No write/destructive exemption — idempotency of
|
|
315
311
|
#: side effects belongs to the action layer below.
|
|
316
312
|
tool_dedup: bool = True
|
|
317
313
|
#: Include the full tool result in ``tool_call_result`` events (not just
|
|
@@ -4,7 +4,7 @@ Used where a real tokenizer is unavailable (compaction pressure trigger).
|
|
|
4
4
|
Providers report true usage for the budget axis; this only needs to be
|
|
5
5
|
proportionally right so thresholds trip at the same relative fill level.
|
|
6
6
|
|
|
7
|
-
Base heuristic
|
|
7
|
+
Base heuristic:
|
|
8
8
|
- CJK unified ideographs + CJK punctuation + fullwidth forms ≈ 0.6 token/char
|
|
9
9
|
(empirically close for modern BPE tokenizers on Chinese text);
|
|
10
10
|
- everything else ≈ 0.25 token/char (the classic ~4 chars/token rule);
|
|
@@ -65,7 +65,7 @@ def estimate_text_tokens(text: str) -> int:
|
|
|
65
65
|
#: earlier than intended. The cjk/other per-char split is NOT identifiable
|
|
66
66
|
#: from day-level aggregates (corr(cjk, other) = 0.88), so the correction is
|
|
67
67
|
#: applied as a single global factor; per-char refinement needs per-request
|
|
68
|
-
#: estimated/observed pairs
|
|
68
|
+
#: estimated/observed pairs from sidecar self-recording.
|
|
69
69
|
MODEL_TOKEN_FACTORS: dict[str, float] = {"deepseek": 0.71}
|
|
70
70
|
|
|
71
71
|
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: steerable-agent-runtime
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.41
|
|
4
4
|
Summary: Steerable agent runtime: LLM, tool, storage, and transport adapters.
|
|
5
|
+
License: Apache-2.0
|
|
5
6
|
Requires-Python: >=3.10
|
|
6
7
|
Description-Content-Type: text/markdown
|
|
7
8
|
Requires-Dist: pydantic>=2.10.0
|
|
8
9
|
Requires-Dist: steerable-agent-protocol<1.0.0,>=0.1.0
|
|
9
10
|
Requires-Dist: steerable-agent-harness<1.0.0,>=0.1.0
|
|
10
|
-
Requires-Dist: steerable-agent-runtime-native==0.6.
|
|
11
|
+
Requires-Dist: steerable-agent-runtime-native==0.6.39
|
|
11
12
|
Provides-Extra: sqlalchemy
|
|
12
13
|
Requires-Dist: sqlalchemy>=2.0; extra == "sqlalchemy"
|
|
13
14
|
Provides-Extra: fastapi
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_pyo3_api_surface.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Freeze the CoreLoop calling surface
|
|
1
|
+
"""Freeze the public CoreLoop calling surface.
|
|
2
2
|
|
|
3
3
|
PyO3 must keep these imports, LoopEvent kinds, LoopHooks methods, and
|
|
4
4
|
CoreLoop/LoopConfig constructor fields. A rename here is an API break.
|
|
@@ -16,28 +16,13 @@ import pytest
|
|
|
16
16
|
from steerable_agent_runtime.loop import LoopEventKind, ToolExecutor
|
|
17
17
|
|
|
18
18
|
REPO_ROOT = Path(__file__).resolve().parents[4]
|
|
19
|
-
CATALOG_PATH = REPO_ROOT / "docs" / "spec" / "
|
|
19
|
+
CATALOG_PATH = REPO_ROOT / "docs" / "spec" / "runtime-contract.json"
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
def _catalog() -> dict:
|
|
23
23
|
return json.loads(CATALOG_PATH.read_text(encoding="utf-8"))
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
def test_catalog_listed_framework_paths_exist() -> None:
|
|
27
|
-
catalog = _catalog()
|
|
28
|
-
missing: list[str] = []
|
|
29
|
-
for stage in catalog["stages"]:
|
|
30
|
-
for spec in stage.get("tests", []):
|
|
31
|
-
if spec.get("repo") != "steerable-framework":
|
|
32
|
-
continue
|
|
33
|
-
if spec.get("status") == "planned":
|
|
34
|
-
continue
|
|
35
|
-
path = REPO_ROOT / spec["path"]
|
|
36
|
-
if not path.exists():
|
|
37
|
-
missing.append(spec["path"])
|
|
38
|
-
assert missing == [], f"catalog paths missing: {missing}"
|
|
39
|
-
|
|
40
|
-
|
|
41
26
|
def test_pyo3_required_imports_are_exported() -> None:
|
|
42
27
|
catalog = _catalog()
|
|
43
28
|
errors: list[str] = []
|
|
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
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/src/steerable_agent_runtime/mcp.py
RENAMED
|
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
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_antihallucination.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_approval_policy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_cache_control.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_compaction_policy.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_compaction_strategy.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_content_parts.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_delegation_gate.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_error_taxonomy.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_fragment_bounds.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_gateway_catalog.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_harness_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_history_persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_in_memory_storage.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_llm_gemini_wire.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_llm_responses_wire.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_llm_stream_e2e.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_llm_wire_helpers.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_long_session.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_loop_cancellation.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_loop_sandbox_event.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_loop_terminal.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_model_catalog.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_model_equivalence.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_model_resolve.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_native_default.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_observation_aging.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_orchestration.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_parallel_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_provider_compat.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_provider_presets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_replay_crosslang.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_soft_timeout.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_sqlite_storage.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_storage_contract.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_stream_strip.py
RENAMED
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_system_proxy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_tool_exposure.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_tool_hygiene.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_tool_timeout.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_trace_recorder.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_transport_jsonrpc.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_transport_sse.py
RENAMED
|
File without changes
|
{steerable_agent_runtime-0.6.39 → steerable_agent_runtime-0.6.41}/tests/test_usage_attribution.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|