AbstractRuntime 0.4.34__tar.gz → 0.5.0__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.
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/ACKNOWLEDGMENTS.md +6 -5
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/CHANGELOG.md +139 -7
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/CONTRIBUTING.md +9 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/PKG-INFO +18 -11
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/README.md +14 -7
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/ROADMAP.md +3 -17
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/README.md +3 -4
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/api.md +7 -1
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/architecture.md +96 -5
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/faq.md +3 -1
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/getting-started.md +1 -1
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/integrations/abstractcore.md +102 -10
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/troubleshooting.md +49 -1
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/llms-full.txt +2767 -3203
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/llms.txt +11 -4
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/mkdocs.yml +3 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/pyproject.toml +4 -4
- abstractruntime-0.5.0/release-notes.md +106 -0
- abstractruntime-0.5.0/scripts/generate_llms_full.py +104 -0
- abstractruntime-0.5.0/src/abstractruntime/core/live_deltas.py +311 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/progress_channel.py +57 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/runtime.py +227 -62
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/config_facade.py +3 -3
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/effect_handlers.py +82 -5
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/embeddings_client.py +16 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/factory.py +18 -1
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/llm_client.py +1493 -73
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/summarizer.py +45 -9
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/workspace_scoped_tools.py +50 -8
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/utils/workspace_paths.py +65 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/compiler.py +2 -2
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/executor.py +9 -0
- abstractruntime-0.5.0/tests/test_compaction_summarizer_route.py +72 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_config_facade_models_engines.py +4 -4
- abstractruntime-0.5.0/tests/test_explicit_eject_other_clients.py +113 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_factory_default_retry_policy.py +1 -1
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_factory_timeouts_default_to_abstractcore_config.py +4 -4
- abstractruntime-0.5.0/tests/test_hf_process_residency_merge.py +175 -0
- abstractruntime-0.5.0/tests/test_live_token_deltas.py +1554 -0
- abstractruntime-0.5.0/tests/test_mlx_process_residency_merge.py +130 -0
- abstractruntime-0.5.0/tests/test_model_residency_clean_switch.py +462 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_packaging_extras.py +3 -3
- abstractruntime-0.5.0/tests/test_workspace_builtin_deny.py +318 -0
- abstractruntime-0.4.34/release-notes.md +0 -7
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/.github/workflows/ci.yml +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/.github/workflows/release.yml +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/.gitignore +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/CODE_OF_CONDUCT.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/LICENSE +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/SECURITY.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/adr/0001_layered_coupling_with_abstractcore.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/adr/0002_execution_modes_local_remote_hybrid.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/adr/0003_provenance_tamper_evident_hash_chain.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/adr/0004_runtime_owns_run_scoped_media_execution_truth.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/adr/0005_runtime_owns_abstractcore_host_discovery_queries.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/adr/0006_runtime_owns_durable_abstractcore_bloc_prompt_cache.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/adr/0007_runtime_relays_core_owned_model_residency_truth.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/adr/README.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/artifacts.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/README.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/001_runtime_kernel.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0030_runtime_host_facades_for_comms_telegram_and_tool_specs.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0032_runtime_durable_outbound_comms_truth.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0033_runtime_host_local_prompt_cache_export_import_surface.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0035_model_residency_provider_truth_for_local_http_clients.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0037_visualflow_generate_music_node_compiler_parity.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0039_runtime_music_structure_prompt_bool_contract.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/003_wait_primitives.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0040_task_agnostic_local_residency_listing.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0041_runtime_hardware_extras_avoid_nonpermissive_document_stacks.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0042_core_vision_upscale_and_parameter_surface.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0043_runtime_vision_adapter_and_batch_surface.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/004_scheduler_driver.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/005_abstractcore_integration.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/006_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/007_provenance_hash_chain.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/009_artifact_store.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/010_examples_and_composition.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/011_subworkflow_support.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/012_run_store_query_and_scheduler_support.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/013_effect_retries_and_idempotency.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/016_runtime_aware_parameters.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/019_runtime_host_facade_for_core_operator_surfaces.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/020_runtime_gateway_install_boundary.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/021_runtime_gateway_env_namespace_cleanup.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/022_model_residency_control_plane.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/023_truthful_local_media_residency_boundaries.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/024_runtime_owned_run_scoped_media_execution.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/026_runtime_host_discovery_facade_for_core_catalogs.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/027_runtime_durable_bloc_prompt_cache_facade.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/028_runtime_bloc_kv_lifecycle_and_pruning.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/029_runtime_music_generation_and_discovery_via_abstractcore.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/completed/0846_mlx_instance_scheduling_and_execution_controls.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/001_integrations_abstractcore.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/001_runtime_kernel.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/002_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/0034_agent_runtime_convenience_constructor.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/003_provenance_ledger_chain.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/003_wait_resume_and_scheduler.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/004_effect_handlers_and_integrations.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/004_tests.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/005_docs_updates.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/005_examples_and_composition.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/006_ai_fingerprint_and_provenance.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/DEPRECATED_README.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/README.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/deprecated/abstractruntime_docs_final_02a7373b.plan.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/0070_standalone_wui_browser_session_security_contract.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/008_signatures_and_keys.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/014_remote_tool_worker_executor.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/017_limit_warnings_and_observability.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/018_workspace_access_policy_for_media_and_tools.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/0233_real_run_cancellation.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/025_runtime_retention_and_purge_contract.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/026_context_checkpoint_self_compression.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/027_quote_provenance_discipline.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/028_selective_artifact_rehydration.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/0845_session_prompt_cache_resume_and_purge_contract.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_portability/0065_portable_process_and_lock_layer.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_portability/0066_portable_io_and_media_reader.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_portability/README.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0044_meta_analysis_record.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0045_crash_replay_harness_and_ordering_invariant.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0046_per_run_driver_exclusion.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0047_indexed_idempotency_lookup.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0048_durable_io_unification.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0049_llm_client_mechanical_split.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0050_control_sidecar_all_writers.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0051_runtime_owned_durable_event_mailbox.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0052_sync_store_event_loop_tripwire.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0053_bounded_run_vars_growth.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0054_runtime_health_counters.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0055_jsonl_store_honesty.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0064_prompt_cache_fingerprint_stability.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0067_durable_write_discipline.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/0068_hot_path_store_reads.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/planned/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/0031_runtime_tool_spec_adapters_for_gateway_and_mcp.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/0036_local_media_residency_bridge_to_core_residency.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/0038_core_server_pool_residency_affinity.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/0069_document_renderer_professional_figures.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/runtime_systemic_reliability/0056_schema_version_and_quarantine_loading.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/runtime_systemic_reliability/0057_trust_boundary_stamp_registry.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/runtime_systemic_reliability/0058_terminal_run_archival_helper.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/runtime_systemic_reliability/0059_memory_span_handler_extraction.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/runtime_systemic_reliability/0060_visualflow_compiler_decomposition.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/runtime_systemic_reliability/0061_root_api_deprecation_machinery.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/runtime_systemic_reliability/0062_dependency_honesty_extras.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/runtime_systemic_reliability/0063_b3_envelope_lane_unification.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/backlog/proposed/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/entity-runtime.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/evidence.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/limits.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/manual_testing.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/mcp-worker.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/proposal.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/provenance.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/snapshots.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/tool-approval.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/tools-comms.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/docs/workflow-bundles.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/emails.config.example.yaml +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/examples/01_hello_world.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/examples/02_ask_user.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/examples/03_wait_until.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/examples/04_multi_step.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/examples/05_persistence.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/examples/06_llm_integration.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/examples/07_react_agent.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/examples/README.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/pytest.ini +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/scripts/backfill_diary_edges.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/config.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/effect_cancellation.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/event_keys.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/health.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/models.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/policy.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/run_lifecycle.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/spec.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/tool_scope.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/core/vars.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/documents/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/documents/charts.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/documents/docx.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/documents/pdf.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/evidence/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/evidence/recorder.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/history_bundle.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/act_only.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/chat.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/communities.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/diary.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/digest.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/entity_runtime.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/fingerprint.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/lease.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/life.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/memory_reader.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/night_voice.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/phase_graph.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/phase_spec.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/prelude.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/prompt_overlay.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/reflection.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/spec/entity_phases.vendored.json +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/substrate.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/tool_effects.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/tool_policy.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/tools.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/identity/visit_workflow.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/agora_tools.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/comms_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/constants.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/data_registry_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/default_tools.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/discovery_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/discovery_queries.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/host_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/local_helper_tools.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/logging.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/mcp_worker.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/media_subprocess.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/observability.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/output_specs.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/run_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/session_attachments.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/telegram_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/tool_executor.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractcore/tool_inventory_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractmemory/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractmemory/brain_handlers.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractmemory/effect_handlers.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractmemory/identity_support.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/integrations/abstractmemory/seam_handlers.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/memory/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/memory/active_context.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/memory/active_memory.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/memory/compaction.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/memory/kg_packets.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/memory/memact_composer.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/memory/recall_levels.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/memory/token_budget.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/rendering/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/rendering/agent_trace_report.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/rendering/json_stringify.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/scheduler/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/scheduler/convenience.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/scheduler/multi_store.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/scheduler/registry.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/scheduler/scheduler.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/session_history.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/artifacts.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/base.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/commands.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/in_memory.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/json_files.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/lease.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/ledger_chain.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/ledger_slim.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/observable.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/offloading.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/serialize.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/snapshots.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/sqlite.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/storage/steer_sidecar.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/turn_grounding.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/utils/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/utils/atomic_files.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/utils/file_filters.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/agent_adapter.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/context_adapter.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/control_adapter.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/effect_adapter.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/event_adapter.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/function_adapter.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/memact_adapter.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/subflow_adapter.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/adapters/variable_adapter.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/flow.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/agent_ids.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/builtins.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/code_executor.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/execution_metrics.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/function_library.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/models.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/multi_entry_lowering.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/visualflow_compiler/visual/pin_expressions.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/workflow_bundle/__init__.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/workflow_bundle/models.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/workflow_bundle/packer.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/workflow_bundle/reader.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/src/abstractruntime/workflow_bundle/registry.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/README.md +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/conftest.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_abstractcore_comms_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_abstractcore_discovery_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_abstractcore_host_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_abstractcore_run_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_abstractcore_telegram_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_active_context_policy.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_active_memory.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_agora_agent_alias_identity.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_agora_tools_http.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_analyze_media_addressing_and_walling.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_answer_user_effect.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_artifacts.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_browser_probe_target_walling.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_budget_law_no_unrequested_caps.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_capability_default_reasoning.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_chat_summarizer_integration.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_code_node_restricted_python.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_command_store.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_compaction_helpers.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_control_adapter_while.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_crash_ordering_inversions.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_data_registry_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_default_tools_camera_gating.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_default_tools_comms_gating.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_default_tools_include_skim_files.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_default_tools_include_skim_folders.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_default_tools_include_skim_web.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_default_tools_search_files_executor.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_diary_capture.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_diary_write_rescue.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_directory_lease.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_disabled_toolsets_seam.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_discovery_survives_unbuildable_default.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_document_markdown_tables.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_document_renderers_hr_quote.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_durable_toolsets.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_durable_write_discipline.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_e2e_tool_calls_idempotency_lmstudio.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_effect_cancellation.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_effect_issuance_idempotency.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_effect_payload_stays_json_serializable.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_election_consequence_teaching.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_emergence_experiment.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_emit_event_uses_wait_index.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_emit_event_without_workflow_registry.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_endpoint_profile_route_context.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_awake_memory_fixes.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_brain_effects.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_chat_driver.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_chat_tools_reflection.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_diary.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_execute_tool.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_fetch_url_tool.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_life_loop.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_memory_richness.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_phase_graph_conformance.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_recent_memories.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_runtime.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_search_memory.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_sleep_bound_and_yield_attribution.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_substrate_resolution.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_visit_honesty.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_workspace_cap.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_entity_workspace_tools.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_event_wait_index.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_every_path_bearing_tool_is_walled.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_evidence_recorder.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_evidence_recorder_post_policy_envelope.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_execute_command_output_offload.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_execution_capability_discovery.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_format_repair_nudge.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_fresh_install_no_provider.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_gateway_facades_c4899.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_git_read_only_refiner.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_hot_path_store_reads.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_indexed_idempotency_lookup.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_integration_abstractcore.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_integrations_abstractcore.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_json_file_run_store_children_index.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_json_run_cache_bound.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_json_store_scan_memo.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_jsonl_ledger_recovery.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_kg_learn_and_recall_contract.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_ledger_chain.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_ledger_record_slimming.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_ledger_subscription.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_media_artifact_refs.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_media_artifact_refs_persist_across_restart.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_media_uses_source_path_label.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_payload_shape_refusal.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_requires_prompt.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_response_schema_normalization.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_structured_output_fallback.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_text_phase_progress.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_truncation_retry_contract.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_use_context_appends_turn.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_call_verbatim_payload_capture.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_client_grounding_tail.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_client_media_artifacts.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_client_system_context.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_client_tool_call_parsing.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_retry_classification.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_llm_streaming_on_token.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_local_helper_tool_exposure.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_local_residency_host_sweep.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_local_runtime_timeout_kwarg_policy.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_max_iterations_ceiling.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_mcp_remote_tool_executor.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_mcp_worker_logging.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_mcp_worker_security.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_mcp_worker_stdio.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_media_artifact_resolution.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_media_capability_default_routing.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_media_subprocess.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memact_composer_from_kg_result.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_appraise_handler.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_communities.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_kg_assert_attributes_defaults.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_kg_packets.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_kg_predicate_aliasing.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_kg_query_packetization_restart.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_kg_query_recall_level_policy.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_kg_semantic_query_ranking.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_note_effect.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_query_effect.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_query_rich_filters.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_scope_and_rehydrate_effect.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_seam_handlers.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_seam_sqlite_durability.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_memory_tag_effect.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_mlx_generation_serialization.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_model_eject_cancel.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_model_residency_control_plane.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_model_residency_lock_and_context_estimate.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_multi_store_scheduler.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_multimodal_abstractcore_integration.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_native_mlx_application_wiring.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_native_mlx_execution_controls_live.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_native_tool_channel.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_night_voice.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_no_default_provider_refusal_ux.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_offload_answer_chain_c4978.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_offloaded_node_traces_report_unknown_not_zero.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_offloading.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_parallel_readonly_tool_execution.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_pause_resume.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_pdf_unicode_rendering.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_personal_cycle.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_phantom_attachment_index.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_phase_graph_artifact_control.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_phase_graph_obedience.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_phase_vocabulary_migration.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_pooled_client_strips_construction_cache_key.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_prompt_cache_export_import.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_prompt_cache_fingerprint_stability.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_prompt_cache_modules.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_prompt_cache_posture_inheritance.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_prompt_cache_thinking_and_prompt_only.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_prompt_overlay.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_provider_endpoint_profile_resolution.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_provider_pin_routing_isolation.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_queryable_run_store.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_read_file_fallback_to_session_attachments.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_read_idle_threading.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_readoption_experiment.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_real_integration.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_realize_election.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_recall_levels_policy.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_remote_client_cancel.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_remote_llm_client.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_remote_speculation_defaults.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_rendering_agent_trace_report.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_rendering_json_stringify.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_report_branding.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_retry_idempotency.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_run_history_bundle.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_run_scoped_tool_policy.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_run_tool_scope_ceiling.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_browser_session_boundary.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_config_max_output_tokens_fallback.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_default_provider_model_refresh.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_effect_invocation_trace.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_health_and_bounded_vars.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_install_boundary.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_llm_call_grounding_in_ledger.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_node_traces.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_start_seeds_tool_support.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_runtime_tick_step_gate.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_scheduler.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_send_email_refiner.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_session_attachments_registry_and_open_tool.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_session_history.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_session_prompt_cache_attribution.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_session_prompt_cache_visibility.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_session_route_stamp.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_shell_tool_exposure.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_snapshots.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_speculation_inheritance.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_speculation_reaches_provider_construction.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_sqlite_ledger_store.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_start_subworkflow_async_wait.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_start_subworkflow_inherit_context_merges_messages.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_start_subworkflow_workspace_inheritance.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_steer_sidecar.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_storage_deletion.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_structured_output_schema_enum.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_subworkflow.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_terminal_effect_completion.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_terminal_resume_appends_ledger_completion.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_thinking_inheritance.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tick_completion_includes_output_in_ledger.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_approval_executor.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_approval_resume_executes.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_approval_wait_key_identity.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_calls_idempotency_keys.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_catalog.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_descriptor_registry.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_executor_argument_sanitization.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_executor_error_output_detection.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_executor_filename_alias.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_executor_kwarg_canonicalization.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_executor_read_file_aliases.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_executor_timeout.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_inventory_facade.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_invoke_effect.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_policy_and_mounts.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_tool_wait_allowlist_safety.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_topic_election_world_model.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_trace_context_propagation.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_turn_grounding_byte_stability.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_turn_grounding_carriers_a3.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_vars_query_effect.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visit_ab_fixture.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visit_history_replay_caps.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visit_midturn_elections.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visit_midturn_resume.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visit_workflow.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_agent_output_context_includes_messages.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_agent_skills_block_passthrough.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_agent_tool_observations_persist_across_restart.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_agent_use_context_inherits_attachments.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_agent_use_context_persists_tool_observations.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_agent_use_context_persists_turn.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_entity_memory_nodes.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_flow_end_effect_only_persistence.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_llm_call_partial_override.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_llm_call_schema_ref_resolution.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_memact_compose_node.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_memory_kg_query_outputs_propagate.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_memory_kg_resolve_outputs_propagate.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_multi_entry_loop_overrides.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_unknown_node_type_refuses.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visual_wait_event_deadline_passthrough.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_add_message_builtin.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_add_message_node_appends_to_active_context.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_agora_react_agent.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_call_tool_node.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_capability_routes_and_thinking.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_compiler_basic.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_context_and_builder_nodes.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_continue_on_error.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_edit_json_schema_node.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_event_inbox_react_agent.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_file_nodes_workspace.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_function_library.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_get_element_node.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_get_random_element_node.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_get_var_node.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_has_tools_builtin.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_llm_call_context_attachments_map_to_media.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_llm_call_multimodal_output.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_make_object_node.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_media_nodes.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_memory_effect_nodes.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_memory_source_pins.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_pin_expressions.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_prompt_only.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_random_nodes.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_schema_enum_switch.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_string_contains_replace.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_visualflow_tool_parameters_node.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_w4_feelings_lens.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_wait_event_deadline.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_wait_event_prompt_metadata.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_wait_until_streak.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_wait_until_utc_normalization.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_workflow_bundle_registry.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_workspace_policy_absolute_reanchor.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_workspace_policy_allowlist_mode.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_workspace_policy_mount_virtual_paths.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_workspace_policy_tool_calls_persist_across_restart.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_workspace_prompt_context.py +0 -0
- {abstractruntime-0.4.34 → abstractruntime-0.5.0}/tests/test_write_chart.py +0 -0
|
@@ -7,14 +7,15 @@ The canonical dependency list lives in `pyproject.toml`.
|
|
|
7
7
|
|
|
8
8
|
## Runtime dependencies (core install)
|
|
9
9
|
|
|
10
|
-
- **abstractsemantics** (`>=0.0.
|
|
11
|
-
- **AbstractMemory** (`>=0.
|
|
10
|
+
- **abstractsemantics** (`>=0.0.5`) — structured schema registry support (declared in `pyproject.toml`, used in `src/abstractruntime/integrations/abstractmemory/effect_handlers.py` and VisualFlow execution wiring).
|
|
11
|
+
- **AbstractMemory** (`>=0.3.0`) — TripleStore models and store contract used by Runtime's `MEMORY_KG_*` effects. Durable/vector backend dependencies such as LanceDB remain selected by hosts.
|
|
12
12
|
|
|
13
13
|
## Runtime integrations
|
|
14
|
-
- **abstractcore** (
|
|
14
|
+
- **abstractcore** (`abstractcore[remote,tools,vision,voice,audio,music]>=2.15.1`) — LLM, tools, media, and capability integration used by the base `abstractruntime` install; the `apple` and `gpu` extras select `abstractcore[all-apple]` / `abstractcore[all-gpu]` at the same floor (declared in `pyproject.toml`, implementation under `src/abstractruntime/integrations/abstractcore/*`, docs: `docs/integrations/abstractcore.md`).
|
|
15
15
|
- The AbstractCore integration uses **httpx** for remote mode (`src/abstractruntime/integrations/abstractcore/llm_client.py`) and **pydantic** for structured validation (`src/abstractruntime/integrations/abstractcore/effect_handlers.py`). These are provided by AbstractCore’s dependency set.
|
|
16
|
-
-
|
|
17
|
-
- **RestrictedPython** (
|
|
16
|
+
- The `tools` extra of AbstractCore backs the base Runtime toolset and the `abstractruntime-mcp-worker` entry point.
|
|
17
|
+
- **RestrictedPython** (`>=7.0`, core install) — sandbox for VisualFlow “Code” nodes and pin expressions (`src/abstractruntime/visualflow_compiler/visual/code_executor.py`).
|
|
18
|
+
- **pypdf** and **reportlab** — VisualFlow `Read PDF` / `Write PDF` nodes in the base install.
|
|
18
19
|
|
|
19
20
|
## Build & test tooling
|
|
20
21
|
|
|
@@ -5,17 +5,147 @@ All notable changes to AbstractRuntime will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [0.5.0] - 2026-09-26
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- When an LLM call is re-run after a stray kill, its interrupted first run ends with
|
|
13
|
+
`delta_end` `cancelled` with `detail: "reinvoked"` (the run continues) and the re-run streams
|
|
14
|
+
under its own call id, so a live view never shows a partial answer followed by the full one.
|
|
15
|
+
- The last batch of a streamed reply is sent before the call's final record is written, never just
|
|
16
|
+
after it; text arriving once the call has returned is dropped.
|
|
17
|
+
- A streamed reply that only turns out to lack token usage at the end now ends with
|
|
18
|
+
`reason: "completed"` in the live view (the text did stream); `usage_unavailable` is recorded on
|
|
19
|
+
the `LLM_CALL` record only.
|
|
20
|
+
- Streamed answers without usage are no longer invisible to the aborted-generation check: it judges
|
|
21
|
+
them from `finish_reason` and the text, and the record says so with `metadata.usage_estimated`.
|
|
22
|
+
- Servers that reject `stream_options` but still send token usage (LM Studio) stream again.
|
|
23
|
+
Streaming is refused for missing usage only when the provider reports the rejection AND a
|
|
24
|
+
streamed answer came back without usage; one call in ten streams again to re-check, and a
|
|
25
|
+
streamed answer with usage lifts the refusal.
|
|
26
|
+
- A child run or a VisualFlow node can no longer switch off the host's built-in workspace
|
|
27
|
+
protection: it may add `workspace_builtin_deny_prefixes`, never remove the host's, and cannot
|
|
28
|
+
widen `workspace_builtin_allow` beyond the parent's (its own folder counts only when it is
|
|
29
|
+
inside an allowed folder).
|
|
30
|
+
- Harmony-format models (gpt-oss) stream their answers live: the `final` channel is sent as
|
|
31
|
+
content, `analysis` as reasoning, and tool calls are held back. A call whose whole answer is held
|
|
32
|
+
back ends with `reason: "unavailable"`, `detail: "tool_envelope_holdback"` instead of a silent
|
|
33
|
+
empty live view.
|
|
34
|
+
- One streamed answer without token usage no longer turns streaming off for that model until
|
|
35
|
+
restart. That call is reported (`usage_unavailable`) and the next call streams again; streaming
|
|
36
|
+
stays off only when the provider reports that its server rejects usage in streams.
|
|
37
|
+
- Host-protected folders no longer grow the system prompt. A host can pass its own protection as
|
|
38
|
+
`workspace_builtin_deny_prefixes` (for example the gateway's data folder and credential folders)
|
|
39
|
+
and `workspace_builtin_allow` (the run's own folder inside it). File tools, listings and the
|
|
40
|
+
shell's starting folder are refused under a denied prefix, except under an allow entry. These
|
|
41
|
+
entries are enforced but never written into the model's system prompt, which keeps it identical
|
|
42
|
+
from turn to turn (and the prompt cache warm); only the operator's own `workspace_ignored_paths`
|
|
43
|
+
are shown to the model. Child runs inherit both lists.
|
|
44
|
+
- MLX calls stream again when they use a prompt-cache key: AbstractCore now puts the prompt-cache
|
|
45
|
+
record on the stream's last chunk, so the streamed record matches the non-streamed one.
|
|
46
|
+
- Streamed LLM calls now record the same result as non-streamed ones: `raw_response` is present
|
|
47
|
+
(the provider's terminal chunk), and the last reasoning fragment no longer leaks into
|
|
48
|
+
`metadata.reasoning_delta`.
|
|
49
|
+
- Changing the default text model no longer leaves the previous model in memory. The previous
|
|
50
|
+
in-process model (MLX or HuggingFace) is unloaded from the whole process before the new default
|
|
51
|
+
is loaded, unless the pool still uses it or it is locked. A call still generating on it is not
|
|
52
|
+
cancelled; the model is unloaded when that call ends. Measured on a 27B MLX model: 17 GB stayed
|
|
53
|
+
resident after a console switch; now it is freed.
|
|
54
|
+
- Changing the default model in one service never unloads a model another service, user or
|
|
55
|
+
entity in the same process still uses or has locked. The check covers every owner in the
|
|
56
|
+
process and runs under one lock with the unload, so a model being loaded again at that moment
|
|
57
|
+
is not unloaded either.
|
|
58
|
+
- `list_model_residency` diagnostics carry `pending_ejects` (a previous model waiting for its
|
|
59
|
+
running call to end before it is unloaded) and `last_switch_ejects` (unloaded, kept because
|
|
60
|
+
something still uses it, or failed, with the reason).
|
|
61
|
+
- A load with `ttl_s` or `keep_alive` on an in-process model, or on a model that was already
|
|
62
|
+
loaded, now reports them under `unsupported_options` with a warning; provider warnings appear in
|
|
63
|
+
the response's top-level `warnings`.
|
|
64
|
+
- A model load that fails part-way unloads what it had loaded.
|
|
65
|
+
- Chat compaction summarizes a run with the model the run uses, instead of loading the default
|
|
66
|
+
model just for the summary. A run with no model of its own is summarized with the current
|
|
67
|
+
default model, resolved on each call; the summarizer no longer holds the model that was the
|
|
68
|
+
default at startup.
|
|
69
|
+
- Unloading a model by `runtime_id` alone now works for every task: TTS, STT, image, music and
|
|
70
|
+
embedding rows, not only text. A backend's own id is looked up in the listing.
|
|
71
|
+
- Listings no longer report a task error on every call for `image_upscale`, `video_generation`,
|
|
72
|
+
`text_to_video`, `image_to_video` and `text_to_audio`; they are served by the image and music
|
|
73
|
+
capabilities.
|
|
74
|
+
- Changing a capability default unloads the models the previous capability routes had loaded
|
|
75
|
+
instead of leaving them in memory.
|
|
76
|
+
- Unloading a local MLX model through the runtime (`model_residency` unload, on
|
|
77
|
+
a single client or the multi-model pool) now frees it from every holder in
|
|
78
|
+
the process, not only from the runtime's own instance. Before, the weights
|
|
79
|
+
could stay in memory when another part of the process still held the model
|
|
80
|
+
(for example a client created with a per-request override, a chat summarizer
|
|
81
|
+
built at startup, or a runtime left over after a bundle reload), and the
|
|
82
|
+
unload still reported success. The unload result now includes a
|
|
83
|
+
`process_eject` report and names what, if anything, is still held.
|
|
84
|
+
- Model residency listings now show MLX models the process still holds, even
|
|
85
|
+
when the runtime's own pool no longer references them
|
|
86
|
+
(`provider_state: "resident_via_other_holders"`). Such a model can be
|
|
87
|
+
unloaded from the listing like any other.
|
|
88
|
+
|
|
89
|
+
### Added
|
|
90
|
+
|
|
91
|
+
- **Live token streaming.** `Runtime.set_live_delta_sink(sink)` lets a host receive the text of an
|
|
92
|
+
answer while it is generated. For runs started with `_runtime.stream: true`, each LLM call streams
|
|
93
|
+
and the sink gets `llm.delta` events (`run_id`, `parent_run_id`, `node_id`, `call_id` = the LLM
|
|
94
|
+
call's step id, `seq`, `text`, `channel` = `content` or `reasoning`) and one `llm.delta_end`
|
|
95
|
+
(`completed`, `failed`, `cancelled`, or `unavailable` with a `detail`) after the call's final
|
|
96
|
+
record is written. Deltas are never written to the ledger. Thinking is sent on its own `reasoning`
|
|
97
|
+
channel, including inline `<think>` markup, and tool-call markup never reaches the live text.
|
|
98
|
+
A call streams only when its recorded result keeps its usage, `raw_response` and prompt-cache
|
|
99
|
+
telemetry; otherwise it runs non-streamed and the reason is sent to the client and recorded as
|
|
100
|
+
`_runtime_observability.stream_unavailable`. Child runs inherit `stream`. `Runtime.start`
|
|
101
|
+
refuses a non-boolean `_runtime.stream`. Remote mode (AbstractCore server) stays non-streaming.
|
|
102
|
+
See `docs/integrations/abstractcore.md#live-token-streaming`.
|
|
103
|
+
- Embedding models loaded in the process appear in `list_model_residency` as `task: "embedding"`
|
|
104
|
+
rows (`local:embedding:huggingface:<model>`, with holders and bytes) and can be unloaded like any
|
|
105
|
+
other model.
|
|
106
|
+
- HuggingFace models held in the process outside the runtime's pool are listed and unloaded like
|
|
107
|
+
MLX ones.
|
|
108
|
+
|
|
109
|
+
### Changed
|
|
110
|
+
|
|
111
|
+
- Compatibility: AbstractRuntime 0.5.0 requires AbstractCore 2.16.0 or newer (was 2.15.1 in
|
|
112
|
+
0.4.35) in the base install and in the `apple` and `gpu` extras, and `models_engines_support()`
|
|
113
|
+
reports 2.16.0 as `required`. The live streaming, process-wide unload and residency features above
|
|
114
|
+
use modules that first ship in AbstractCore 2.16.0. Upgrading AbstractRuntime upgrades AbstractCore
|
|
115
|
+
accordingly; if you pin AbstractCore yourself, raise the pin to 2.16.0.
|
|
116
|
+
|
|
117
|
+
## [0.4.35] - 2026-09-25
|
|
118
|
+
|
|
119
|
+
### Fixed
|
|
120
|
+
|
|
121
|
+
- `models_engines_support()` and the `AbstractCoreTooOld` error now name
|
|
122
|
+
AbstractCore 2.15.1 as the required version (they said 2.14.0), matching the
|
|
123
|
+
base-install floor. Who is affected: hosts such as AbstractGateway that read
|
|
124
|
+
`required` to decide whether the models and engines features are usable. They
|
|
125
|
+
could accept AbstractCore 2.14.x, where `host_job_cancel(by=..., user=...)`
|
|
126
|
+
fails. No action is needed if you install AbstractRuntime normally: the
|
|
127
|
+
AbstractCore floor is unchanged at 2.15.1.
|
|
128
|
+
|
|
129
|
+
### Documentation
|
|
130
|
+
|
|
131
|
+
- `ROADMAP.md` no longer shows a stale "v0.4.2" status or a priority list; it
|
|
132
|
+
points to `CHANGELOG.md` and the AbstractFramework backlog.
|
|
9
133
|
|
|
10
134
|
## [0.4.34] - 2026-09-24
|
|
11
135
|
|
|
12
136
|
### Changed
|
|
13
137
|
|
|
14
|
-
- `config_facade.host_job_cancel(job_id, *, by="api", user=None)`
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
138
|
+
- `config_facade.host_job_cancel(job_id, *, by="api", user=None)` records who
|
|
139
|
+
cancelled a host job (a model download, delete or engine install): `by`
|
|
140
|
+
(`api`, or `console` for a click in an embedded console) and the signed-in
|
|
141
|
+
`user` are stored on the job as `cancelled_by`, `cancelled_by_user` and
|
|
142
|
+
`ended_reason`. Existing calls without these arguments keep working and are
|
|
143
|
+
recorded as `by="api"`. Hosts such as AbstractGateway can pass the requesting
|
|
144
|
+
account to show who cancelled a job.
|
|
145
|
+
- Compatibility: AbstractRuntime 0.4.34 requires AbstractCore 2.15.1 or newer
|
|
146
|
+
(was 2.14.0) in the base install and in the `apple` and `gpu` extras.
|
|
147
|
+
Upgrading AbstractRuntime upgrades AbstractCore accordingly; if you pin
|
|
148
|
+
AbstractCore yourself, raise the pin to 2.15.1 as well.
|
|
19
149
|
|
|
20
150
|
## [0.4.33] - 2026-09-23
|
|
21
151
|
|
|
@@ -865,7 +995,9 @@ AbstractRuntime is the durable execution substrate designed to pair with Abstrac
|
|
|
865
995
|
|
|
866
996
|
Initial development version with basic proof-of-concept features.
|
|
867
997
|
|
|
868
|
-
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.
|
|
998
|
+
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.5.0...HEAD
|
|
999
|
+
[0.5.0]: https://github.com/lpalbou/abstractruntime/compare/v0.4.35...v0.5.0
|
|
1000
|
+
[0.4.35]: https://github.com/lpalbou/abstractruntime/compare/v0.4.34...v0.4.35
|
|
869
1001
|
[0.4.34]: https://github.com/lpalbou/abstractruntime/compare/v0.4.33...v0.4.34
|
|
870
1002
|
[0.4.33]: https://github.com/lpalbou/abstractruntime/compare/v0.4.32...v0.4.33
|
|
871
1003
|
[0.4.32]: https://github.com/lpalbou/abstractruntime/compare/v0.4.29...v0.4.32
|
|
@@ -22,6 +22,9 @@ python -m pip install -e ".[test,docs]"
|
|
|
22
22
|
python -m pytest -q
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
Inside the AbstractFramework workspace, prefer `python -P -m pytest tests -q`: `-P` keeps the current folder off
|
|
26
|
+
`sys.path`, so a workspace folder named like a package (for example `abstractflow/`) cannot shadow it.
|
|
27
|
+
|
|
25
28
|
If you cloned **only** this repo (without the AbstractFramework workspace), make sure the sibling packages above are importable (install them or clone them next to this repo) before running the full test suite.
|
|
26
29
|
|
|
27
30
|
## Repo map (source of truth)
|
|
@@ -56,6 +59,12 @@ When behavior changes, update:
|
|
|
56
59
|
- `docs/architecture.md` (semantics/invariants)
|
|
57
60
|
- `CHANGELOG.md` (user-visible changes)
|
|
58
61
|
|
|
62
|
+
List every `docs/*.md` page in `docs/README.md`. Keep `llms.txt` (the hand-curated index) and
|
|
63
|
+
`llms-full.txt` in step with the documentation in the same change. `llms-full.txt` is generated:
|
|
64
|
+
run `python scripts/generate_llms_full.py` after editing any page it includes, and
|
|
65
|
+
`python scripts/generate_llms_full.py --check` to confirm it is current (it exits 1 when the file
|
|
66
|
+
is stale). Add a page to the script's `DOCUMENTS` list when it joins the core set.
|
|
67
|
+
|
|
59
68
|
## Releases
|
|
60
69
|
|
|
61
70
|
- Bump `version` in `pyproject.toml`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: AbstractRuntime
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: AbstractRuntime: a durable graph runner designed to pair with AbstractCore.
|
|
5
5
|
Project-URL: AbstractCore (website), https://www.abstractcore.ai/
|
|
6
6
|
Project-URL: AbstractRuntime (GitHub), https://github.com/lpalbou/abstractruntime
|
|
@@ -20,7 +20,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
22
|
Requires-Python: >=3.10
|
|
23
|
-
Requires-Dist: abstractcore[audio,music,remote,tools,vision,voice]>=2.
|
|
23
|
+
Requires-Dist: abstractcore[audio,music,remote,tools,vision,voice]>=2.16.0
|
|
24
24
|
Requires-Dist: abstractmemory>=0.3.0
|
|
25
25
|
Requires-Dist: abstractsemantics>=0.0.5
|
|
26
26
|
Requires-Dist: anyio<5.0.0,>=4.12.1
|
|
@@ -35,14 +35,14 @@ Requires-Dist: reportlab<5.0.0,>=4.0.0
|
|
|
35
35
|
Requires-Dist: restrictedpython>=7.0
|
|
36
36
|
Requires-Dist: unstructured[docx,odt,pptx,rtf,xlsx]<0.19.0,>=0.18.32
|
|
37
37
|
Provides-Extra: apple
|
|
38
|
-
Requires-Dist: abstractcore[all-apple]>=2.
|
|
38
|
+
Requires-Dist: abstractcore[all-apple]>=2.16.0; extra == 'apple'
|
|
39
39
|
Requires-Dist: setuptools<82.0.0,>=80.10.2; extra == 'apple'
|
|
40
40
|
Provides-Extra: docs
|
|
41
41
|
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
|
|
42
42
|
Requires-Dist: mkdocs>=1.6.0; extra == 'docs'
|
|
43
43
|
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
|
|
44
44
|
Provides-Extra: gpu
|
|
45
|
-
Requires-Dist: abstractcore[all-gpu]>=2.
|
|
45
|
+
Requires-Dist: abstractcore[all-gpu]>=2.16.0; extra == 'gpu'
|
|
46
46
|
Requires-Dist: setuptools<82.0.0,>=77.0.3; extra == 'gpu'
|
|
47
47
|
Provides-Extra: test
|
|
48
48
|
Requires-Dist: pytest>=7.0.0; extra == 'test'
|
|
@@ -54,7 +54,7 @@ Description-Content-Type: text/markdown
|
|
|
54
54
|
|
|
55
55
|
It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
|
|
56
56
|
|
|
57
|
-
**Version:** 0.
|
|
57
|
+
**Version:** 0.5.0 • **Python:** 3.10+
|
|
58
58
|
|
|
59
59
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
60
60
|
|
|
@@ -82,7 +82,7 @@ Remote-light runtime:
|
|
|
82
82
|
pip install abstractruntime
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
The base install includes AbstractCore 2.
|
|
85
|
+
The base install includes AbstractCore 2.16.0 or newer with remote provider,
|
|
86
86
|
tool, vision, voice, audio, and music integration, plus the
|
|
87
87
|
`abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
|
|
88
88
|
default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
|
|
@@ -146,7 +146,7 @@ state = rt.resume(
|
|
|
146
146
|
assert state.status.value == "completed"
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
## What’s included (v0.
|
|
149
|
+
## What’s included (v0.5.0)
|
|
150
150
|
|
|
151
151
|
Kernel (import-light):
|
|
152
152
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -179,7 +179,7 @@ Drivers + distribution:
|
|
|
179
179
|
Core media controls, including `count`/`n`, `seeds`, ordered
|
|
180
180
|
`lora_adapters`, and video `flow_shift`, while keeping provider/model/task
|
|
181
181
|
truth in AbstractCore and AbstractVision.
|
|
182
|
-
- `history_bundle`
|
|
182
|
+
- `history_bundle` exports replay-safe `resolved_actions` summaries derived
|
|
183
183
|
from Core request/output route resolution, so thin clients can reconstruct
|
|
184
184
|
what capability ran without reverse-engineering prompt prose.
|
|
185
185
|
- VisualFlow structured LLM/Agent results preserve `response` as text and expose
|
|
@@ -189,12 +189,15 @@ Drivers + distribution:
|
|
|
189
189
|
|
|
190
190
|
Runtime-owned integrations:
|
|
191
191
|
- AbstractCore (LLM + tools, `MODEL_RESIDENCY` with residency locks and context estimates, public discovery/host/run facades, cached sessions with per-session prompt-cache listing/clearing, host memory snapshots, local-only prompt-cache export/import admin, durable bloc prompt-cache controls, bindings, lifecycle operations, generated image/video/voice/music outputs with progress events, host email helpers, Telegram host wrappers, and tool approval waits): `docs/integrations/abstractcore.md`
|
|
192
|
-
- AbstractCore models and engines for hosts
|
|
192
|
+
- AbstractCore models and engines for hosts: `config_facade` passes through the host profile, local-engine status and installs, the model catalog with fit verdicts, installed models, deletes, host jobs (with who-cancelled attribution) and the embeddable console screens: `docs/integrations/abstractcore.md#models-engines-and-host-jobs-config-facade`
|
|
193
193
|
- For outbound comms, use the durable run facade when the send belongs to a run: `get_abstractcore_run_facade(...).send_email(...)` / `send_telegram_message(...)`. If that child run pauses for approval or passthrough execution, resume it through `resume_tool_calls(...)`. Direct host-facade send helpers and the standalone email comms facade remain host-local and nondurable.
|
|
194
194
|
- AbstractMemory TripleStore integration for `MEMORY_KG_*` effects. Runtime
|
|
195
195
|
depends on the light AbstractMemory contract; hosts choose storage backends
|
|
196
196
|
such as LanceDB, SQLite, or in-memory stores.
|
|
197
197
|
- comms toolset gating (email/WhatsApp/Telegram): `docs/tools-comms.md`
|
|
198
|
+
- live token streaming: `Runtime.set_live_delta_sink(sink)` plus `_runtime.stream: true` delivers `llm.delta` / `llm.delta_end` events while an answer is generated, outside the ledger (`docs/integrations/abstractcore.md#live-token-streaming`)
|
|
199
|
+
- model switching in a shared process: changing the default model unloads the previous in-process model unless another owner in the process still uses it (`docs/integrations/abstractcore.md#unloading-and-switching-models`)
|
|
200
|
+
- workspace-scoped file and shell tools driven by `workspace_*` run vars, including host-only protected folders that are enforced without being shown to the model (`docs/integrations/abstractcore.md#workspace-scoped-tools`)
|
|
198
201
|
|
|
199
202
|
## Built-in scheduler (zero-config)
|
|
200
203
|
|
|
@@ -232,7 +235,11 @@ sr = create_scheduled_runtime(
|
|
|
232
235
|
| [Troubleshooting](docs/troubleshooting.md) | Symptom-oriented setup, runtime, and integration fixes |
|
|
233
236
|
| [Architecture](docs/architecture.md) | Component map + diagrams |
|
|
234
237
|
| [Overview](docs/proposal.md) | Design goals, core concepts, and scope |
|
|
235
|
-
| [
|
|
238
|
+
| [AbstractCore Integration](docs/integrations/abstractcore.md) | `LLM_CALL` / `TOOL_CALLS`, host facades, models/engines/host jobs |
|
|
239
|
+
| [Artifacts](docs/artifacts.md) | Artifact identity, descriptors, catalog search and access stats |
|
|
240
|
+
| [Tool Approval](docs/tool-approval.md) | Tool risk tiers, run-policy ceiling, per-call refiners |
|
|
241
|
+
| [Comms Toolset](docs/tools-comms.md) | Opt-in email/WhatsApp/Telegram tools |
|
|
242
|
+
| [Entity Runtime](docs/entity-runtime.md) | Per-entity runtimes, homes, leases, visit waits |
|
|
236
243
|
| [Snapshots](docs/snapshots.md) | Named checkpoints for run state |
|
|
237
244
|
| [Provenance](docs/provenance.md) | Tamper-evident ledger documentation |
|
|
238
245
|
| [Evidence](docs/evidence.md) | Artifact-backed evidence capture for web/command tools |
|
|
@@ -244,7 +251,7 @@ sr = create_scheduled_runtime(
|
|
|
244
251
|
| [Code of Conduct](CODE_OF_CONDUCT.md) | Contributor conduct expectations |
|
|
245
252
|
| [Security](SECURITY.md) | Responsible vulnerability reporting |
|
|
246
253
|
| [Acknowledgments](ACKNOWLEDGMENTS.md) | Credits |
|
|
247
|
-
| [ROADMAP](ROADMAP.md) |
|
|
254
|
+
| [ROADMAP](ROADMAP.md) | Current status and longer-term direction |
|
|
248
255
|
|
|
249
256
|
## Development
|
|
250
257
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
|
|
6
6
|
|
|
7
|
-
**Version:** 0.
|
|
7
|
+
**Version:** 0.5.0 • **Python:** 3.10+
|
|
8
8
|
|
|
9
9
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
10
10
|
|
|
@@ -32,7 +32,7 @@ Remote-light runtime:
|
|
|
32
32
|
pip install abstractruntime
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
The base install includes AbstractCore 2.
|
|
35
|
+
The base install includes AbstractCore 2.16.0 or newer with remote provider,
|
|
36
36
|
tool, vision, voice, audio, and music integration, plus the
|
|
37
37
|
`abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
|
|
38
38
|
default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
|
|
@@ -96,7 +96,7 @@ state = rt.resume(
|
|
|
96
96
|
assert state.status.value == "completed"
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
## What’s included (v0.
|
|
99
|
+
## What’s included (v0.5.0)
|
|
100
100
|
|
|
101
101
|
Kernel (import-light):
|
|
102
102
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -129,7 +129,7 @@ Drivers + distribution:
|
|
|
129
129
|
Core media controls, including `count`/`n`, `seeds`, ordered
|
|
130
130
|
`lora_adapters`, and video `flow_shift`, while keeping provider/model/task
|
|
131
131
|
truth in AbstractCore and AbstractVision.
|
|
132
|
-
- `history_bundle`
|
|
132
|
+
- `history_bundle` exports replay-safe `resolved_actions` summaries derived
|
|
133
133
|
from Core request/output route resolution, so thin clients can reconstruct
|
|
134
134
|
what capability ran without reverse-engineering prompt prose.
|
|
135
135
|
- VisualFlow structured LLM/Agent results preserve `response` as text and expose
|
|
@@ -139,12 +139,15 @@ Drivers + distribution:
|
|
|
139
139
|
|
|
140
140
|
Runtime-owned integrations:
|
|
141
141
|
- AbstractCore (LLM + tools, `MODEL_RESIDENCY` with residency locks and context estimates, public discovery/host/run facades, cached sessions with per-session prompt-cache listing/clearing, host memory snapshots, local-only prompt-cache export/import admin, durable bloc prompt-cache controls, bindings, lifecycle operations, generated image/video/voice/music outputs with progress events, host email helpers, Telegram host wrappers, and tool approval waits): `docs/integrations/abstractcore.md`
|
|
142
|
-
- AbstractCore models and engines for hosts
|
|
142
|
+
- AbstractCore models and engines for hosts: `config_facade` passes through the host profile, local-engine status and installs, the model catalog with fit verdicts, installed models, deletes, host jobs (with who-cancelled attribution) and the embeddable console screens: `docs/integrations/abstractcore.md#models-engines-and-host-jobs-config-facade`
|
|
143
143
|
- For outbound comms, use the durable run facade when the send belongs to a run: `get_abstractcore_run_facade(...).send_email(...)` / `send_telegram_message(...)`. If that child run pauses for approval or passthrough execution, resume it through `resume_tool_calls(...)`. Direct host-facade send helpers and the standalone email comms facade remain host-local and nondurable.
|
|
144
144
|
- AbstractMemory TripleStore integration for `MEMORY_KG_*` effects. Runtime
|
|
145
145
|
depends on the light AbstractMemory contract; hosts choose storage backends
|
|
146
146
|
such as LanceDB, SQLite, or in-memory stores.
|
|
147
147
|
- comms toolset gating (email/WhatsApp/Telegram): `docs/tools-comms.md`
|
|
148
|
+
- live token streaming: `Runtime.set_live_delta_sink(sink)` plus `_runtime.stream: true` delivers `llm.delta` / `llm.delta_end` events while an answer is generated, outside the ledger (`docs/integrations/abstractcore.md#live-token-streaming`)
|
|
149
|
+
- model switching in a shared process: changing the default model unloads the previous in-process model unless another owner in the process still uses it (`docs/integrations/abstractcore.md#unloading-and-switching-models`)
|
|
150
|
+
- workspace-scoped file and shell tools driven by `workspace_*` run vars, including host-only protected folders that are enforced without being shown to the model (`docs/integrations/abstractcore.md#workspace-scoped-tools`)
|
|
148
151
|
|
|
149
152
|
## Built-in scheduler (zero-config)
|
|
150
153
|
|
|
@@ -182,7 +185,11 @@ sr = create_scheduled_runtime(
|
|
|
182
185
|
| [Troubleshooting](docs/troubleshooting.md) | Symptom-oriented setup, runtime, and integration fixes |
|
|
183
186
|
| [Architecture](docs/architecture.md) | Component map + diagrams |
|
|
184
187
|
| [Overview](docs/proposal.md) | Design goals, core concepts, and scope |
|
|
185
|
-
| [
|
|
188
|
+
| [AbstractCore Integration](docs/integrations/abstractcore.md) | `LLM_CALL` / `TOOL_CALLS`, host facades, models/engines/host jobs |
|
|
189
|
+
| [Artifacts](docs/artifacts.md) | Artifact identity, descriptors, catalog search and access stats |
|
|
190
|
+
| [Tool Approval](docs/tool-approval.md) | Tool risk tiers, run-policy ceiling, per-call refiners |
|
|
191
|
+
| [Comms Toolset](docs/tools-comms.md) | Opt-in email/WhatsApp/Telegram tools |
|
|
192
|
+
| [Entity Runtime](docs/entity-runtime.md) | Per-entity runtimes, homes, leases, visit waits |
|
|
186
193
|
| [Snapshots](docs/snapshots.md) | Named checkpoints for run state |
|
|
187
194
|
| [Provenance](docs/provenance.md) | Tamper-evident ledger documentation |
|
|
188
195
|
| [Evidence](docs/evidence.md) | Artifact-backed evidence capture for web/command tools |
|
|
@@ -194,7 +201,7 @@ sr = create_scheduled_runtime(
|
|
|
194
201
|
| [Code of Conduct](CODE_OF_CONDUCT.md) | Contributor conduct expectations |
|
|
195
202
|
| [Security](SECURITY.md) | Responsible vulnerability reporting |
|
|
196
203
|
| [Acknowledgments](ACKNOWLEDGMENTS.md) | Credits |
|
|
197
|
-
| [ROADMAP](ROADMAP.md) |
|
|
204
|
+
| [ROADMAP](ROADMAP.md) | Current status and longer-term direction |
|
|
198
205
|
|
|
199
206
|
## Development
|
|
200
207
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# AbstractRuntime Roadmap
|
|
2
2
|
|
|
3
|
-
## Current status
|
|
3
|
+
## Current status
|
|
4
|
+
|
|
5
|
+
What changed in each release is in [CHANGELOG.md](CHANGELOG.md); planned work is tracked in the [AbstractFramework backlog](https://github.com/lpalbou/abstractframework/tree/main/docs/backlog).
|
|
4
6
|
|
|
5
7
|
AbstractRuntime provides a durable workflow kernel plus optional integrations:
|
|
6
8
|
- durable execution: `Runtime.start/tick/resume`, explicit `WaitState` (`src/abstractruntime/core/runtime.py`)
|
|
@@ -13,22 +15,6 @@ AbstractRuntime provides a durable workflow kernel plus optional integrations:
|
|
|
13
15
|
- VisualFlow compiler + WorkflowBundles (`src/abstractruntime/visualflow_compiler/*`, `src/abstractruntime/workflow_bundle/*`)
|
|
14
16
|
- AbstractCore integration for `LLM_CALL` / `TOOL_CALLS` (`docs/integrations/abstractcore.md`)
|
|
15
17
|
|
|
16
|
-
## Near-term priorities
|
|
17
|
-
|
|
18
|
-
These are tracked in `docs/backlog/planned/`:
|
|
19
|
-
|
|
20
|
-
1. **Signatures and keys** — non-forgeable provenance (beyond tamper-evidence)
|
|
21
|
-
`docs/backlog/planned/008_signatures_and_keys.md`
|
|
22
|
-
|
|
23
|
-
2. **Remote tool worker executor** — first-class worker boundary for tool execution
|
|
24
|
-
`docs/backlog/planned/014_remote_tool_worker_executor.md`
|
|
25
|
-
|
|
26
|
-
3. **Limit warnings + observability events** — surface `_limits` warnings durably/streaming
|
|
27
|
-
`docs/backlog/planned/017_limit_warnings_and_observability.md`
|
|
28
|
-
|
|
29
|
-
4. **Agent integration improvements** — reduce friction for external agent loops building on runtime
|
|
30
|
-
`docs/backlog/planned/015_agent_integration_improvements.md`
|
|
31
|
-
|
|
32
18
|
## Longer-term (not scheduled)
|
|
33
19
|
|
|
34
20
|
- distributed scheduling primitives (beyond in-process polling)
|
|
@@ -24,14 +24,13 @@ In this repo, the AbstractCore wiring lives under `src/abstractruntime/integrati
|
|
|
24
24
|
## Guides
|
|
25
25
|
|
|
26
26
|
- `faq.md` — common questions (recommended)
|
|
27
|
-
- `troubleshooting.md` — symptom-oriented setup, runtime, and integration fixes
|
|
28
27
|
- `manual_testing.md` — manual smoke tests and how to run the test suite
|
|
29
28
|
- `artifacts.md` — Runtime artifact identity, descriptors, provenance, catalog search, and access stats
|
|
30
|
-
- `integrations/abstractcore.md` — wiring `LLM_CALL` / `TOOL_CALLS`, cached sessions with per-session prompt-cache listing/clearing, host memory snapshots, model-residency listings and
|
|
31
|
-
- run history bundle replay now also exports `resolved_actions` summaries for cross-client capability replay; see `api.md` and `integrations/abstractcore.md`
|
|
29
|
+
- `integrations/abstractcore.md` — wiring `LLM_CALL` / `TOOL_CALLS`, the `config_facade` models/engines/host-jobs passthroughs for hosts, cached sessions with per-session prompt-cache listing/clearing, host memory snapshots, model-residency listings, locks and model switching, live token streaming, workspace-scoped tools, durable bloc prompt-cache control, media inputs, generated media outputs, video progress events, and tool approval waits via AbstractCore
|
|
32
30
|
- `tools-comms.md` — enabling the optional comms toolset (email/WhatsApp/Telegram)
|
|
33
31
|
- `tool-approval.md` — tool risk tiers, the run-policy rank ceiling, and per-call refiners (the `send_email` self-recipient rule)
|
|
34
32
|
- `api.md#workflowbundles-flow-and-visualflow-distribution` — VisualFlow compiler APIs, media nodes, and document nodes (`read_pdf` / `write_pdf` / `write_docx`)
|
|
33
|
+
- `api.md#run-history-bundle-export-portable-replay-artifact` — run history bundles, including `resolved_actions` summaries for cross-client capability replay
|
|
35
34
|
|
|
36
35
|
## Features (reference)
|
|
37
36
|
|
|
@@ -50,6 +49,6 @@ In this repo, the AbstractCore wiring lives under `src/abstractruntime/integrati
|
|
|
50
49
|
- `../CONTRIBUTING.md` — how to build/test and submit changes
|
|
51
50
|
- `../SECURITY.md` — responsible vulnerability reporting
|
|
52
51
|
- `../ACKNOWLEDGMENTS.md` — credits
|
|
53
|
-
- `../ROADMAP.md` —
|
|
52
|
+
- `../ROADMAP.md` — current status and longer-term direction
|
|
54
53
|
- `adr/README.md` — architectural decisions (why)
|
|
55
54
|
- `backlog/README.md` — implemented and planned work items (what/how)
|
|
@@ -75,6 +75,8 @@ Implementation: `src/abstractruntime/core/runtime.py`.
|
|
|
75
75
|
- persists `CANCELLED`, then signals every effect of that run (and its in-flight descendants) executing in this process; the running attempt is recorded as `cancelled` (`StepStatus.CANCELLED`, never retried) with `cancelled_by` and `reason`, and no further effect starts
|
|
76
76
|
- `Runtime.set_default_provider_model(provider=..., model=...)`
|
|
77
77
|
- re-points the default provider/model seeded into new runs; pair it with the pooled client's `set_default_provider_model(...)` so both agree
|
|
78
|
+
- `Runtime.set_live_delta_sink(sink)` where `sink(event: dict) -> None`, or `None` to remove it
|
|
79
|
+
- receives live token deltas (`llm.delta`, `llm.delta_end`) for LLM calls of runs started with `_runtime.stream: true` (a boolean; `start` refuses any other value); nothing is written to the ledger. See [Live token streaming](integrations/abstractcore.md#live-token-streaming)
|
|
78
80
|
|
|
79
81
|
Effect cancellation helpers (`src/abstractruntime/core/effect_cancellation.py`):
|
|
80
82
|
- `inflight_effects(run_ids=None)` lists executing effects (run, step, provider, model, elapsed time)
|
|
@@ -216,7 +218,7 @@ from Core route resolution and persisted from `LLM_CALL` results.
|
|
|
216
218
|
|
|
217
219
|
### AbstractCore (LLM + tools)
|
|
218
220
|
|
|
219
|
-
Requires: `pip install abstractruntime` (AbstractCore 2.
|
|
221
|
+
Requires: `pip install abstractruntime` (AbstractCore 2.16.0 or newer is part of the base install).
|
|
220
222
|
|
|
221
223
|
Implementation: `src/abstractruntime/integrations/abstractcore/*`.
|
|
222
224
|
|
|
@@ -231,6 +233,7 @@ Entry points:
|
|
|
231
233
|
- tool executors: `MappingToolExecutor`, `AbstractCoreToolExecutor`, `PassthroughToolExecutor`, `ApprovalToolExecutor`, `ToolApprovalPolicy` (`src/abstractruntime/integrations/abstractcore/tool_executor.py`)
|
|
232
234
|
- discovery-facade delegation is implemented by the configured AbstractCore LLM clients in `src/abstractruntime/integrations/abstractcore/llm_client.py` (`list_providers`, `list_provider_models`, `get_voice_catalog`, `list_tts_models`, `list_stt_models`, `list_music_providers`, `list_music_models`, `list_vision_provider_models`, `list_cached_vision_models`, `list_vision_adapters`)
|
|
233
235
|
- host-facade client delegation is implemented by the configured AbstractCore LLM clients in `src/abstractruntime/integrations/abstractcore/llm_client.py` (`get_prompt_cache_capabilities`, `get_prompt_cache_stats`, `prompt_cache_set`, `prompt_cache_update`, `prompt_cache_fork`, `prompt_cache_clear`, `prompt_cache_prepare_modules`, `upsert_text_bloc`, `get_bloc_record`, `list_blocs`, `get_bloc_kv_manifest`, `ensure_bloc_kv_artifact`, `load_bloc_kv_artifact`, `list_bloc_kv_artifacts`, `delete_bloc_kv_artifact`, `prune_bloc_kv_artifacts`, `delete_bloc`, `get_model_residency_capabilities`, `list_model_residency`, `load_model_residency`, `unload_model_residency`, `get_memory_snapshot`, `list_session_prompt_caches`, `clear_session_prompt_caches`, `lock_model_residency`, `unlock_model_residency`, `get_context_estimate`); the last six are optional in the client contract, and the facade returns `{"ok": false, "supported": false, ...}` when the configured client does not implement one
|
|
236
|
+
- switching the default model (`set_default_provider_model` on the pooled client) unloads the previous in-process model unless an owner in the process still uses it; `list_model_residency` diagnostics report `pending_ejects` and `last_switch_ejects`, and `unload_model_residency(runtime_id=...)` accepts any listed `local:<task>:<provider>:<model>` id, including `local:embedding:<provider>:<model>` rows (see `integrations/abstractcore.md#unloading-and-switching-models`)
|
|
234
237
|
- `lock_model_residency`, `unlock_model_residency`, and `get_context_estimate` accept an optional payload mapping and/or keyword arguments (keyword arguments win on conflicts); a lock requires provider-verified residency — locking a non-resident pair refuses with a structured `model_not_resident` payload (load with `lock: true` instead; remotely the Core server's HTTP 409 refusal is converted to the same payload), while unlock never requires residency so a locked-but-evicted pair is always releasable; a locked model refuses `unload_model_residency` with a structured `model_locked` payload — locally as a client-side per-`(provider, model)` lock, remotely by converting the Core server's HTTP 409 refusal — and unloads only with `force=true`, releasing the lock only after the unload succeeds
|
|
235
238
|
- the `MODEL_RESIDENCY` effect supports `list_loaded`, `load`, `unload`, `lock`, and `unlock` operations with the same soft-fail semantics; on `unload`, `force` is forwarded only when authored in the effect payload
|
|
236
239
|
- local `list_model_residency` merges AbstractCore's host-wide loaded-model sweep into text-generation listings (sweep-only rows carry `source: "provider_server"` and no `task` label), and residency rows normalize provider size extras to `size_bytes` / `size_vram_bytes` while keeping the originals; local text rows also carry registry-declared `modalities` (omitted on a registry miss), host identity (`host_id` / `host_name`), and runtime-owned lock truth (`locked` / `lockable`, with `pinned` a truthful alias of `locked` — never the default-identity flag, which `default` alone carries), while remote listings keep the Core server's row identity
|
|
@@ -275,6 +278,9 @@ Prompt cache / cached sessions:
|
|
|
275
278
|
- local Runtime owns the bloc root policy: `~/.abstractruntime/blocs` by default, `<base_dir>/blocs` for `create_local_file_runtime(...)`, and explicit `bloc_root_dir=...` overrides when needed
|
|
276
279
|
- provider cache/session handles are not durable runtime state and should not be stored in `RunState.vars`
|
|
277
280
|
|
|
281
|
+
Workspace scope:
|
|
282
|
+
- run vars `workspace_root`, `workspace_access_mode`, `workspace_allowed_paths`, `workspace_ignored_paths`, and the host-only `workspace_builtin_deny_prefixes` / `workspace_builtin_allow` scope file and shell tools; child runs inherit them (see `integrations/abstractcore.md#workspace-scoped-tools`)
|
|
283
|
+
|
|
278
284
|
Attachment registration limits:
|
|
279
285
|
- `TOOL_CALLS.payload.max_attachment_bytes`, `run.vars["_runtime"]["max_attachment_bytes"]`, or `ABSTRACTRUNTIME_MAX_ATTACHMENT_BYTES` bound the bytes Runtime stores when local `read_file` outputs are captured as session attachments
|
|
280
286
|
|