AbstractRuntime 0.4.32__tar.gz → 0.4.33__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.32 → abstractruntime-0.4.33}/CHANGELOG.md +31 -1
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/PKG-INFO +8 -7
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/README.md +4 -3
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/api.md +1 -1
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/architecture.md +1 -1
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/getting-started.md +1 -1
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/integrations/abstractcore.md +54 -1
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/troubleshooting.md +1 -1
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/llms-full.txt +93 -9
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/llms.txt +2 -2
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/pyproject.toml +4 -4
- abstractruntime-0.4.33/release-notes.md +25 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/config_facade.py +434 -0
- abstractruntime-0.4.33/tests/test_config_facade_models_engines.py +502 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_packaging_extras.py +3 -3
- abstractruntime-0.4.32/release-notes.md +0 -140
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/.github/workflows/ci.yml +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/.github/workflows/release.yml +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/.gitignore +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/ACKNOWLEDGMENTS.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/CODE_OF_CONDUCT.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/CONTRIBUTING.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/LICENSE +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/ROADMAP.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/SECURITY.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/adr/0001_layered_coupling_with_abstractcore.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/adr/0002_execution_modes_local_remote_hybrid.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/adr/0003_provenance_tamper_evident_hash_chain.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/adr/0004_runtime_owns_run_scoped_media_execution_truth.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/adr/0005_runtime_owns_abstractcore_host_discovery_queries.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/adr/0006_runtime_owns_durable_abstractcore_bloc_prompt_cache.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/adr/0007_runtime_relays_core_owned_model_residency_truth.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/adr/README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/artifacts.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/001_runtime_kernel.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0030_runtime_host_facades_for_comms_telegram_and_tool_specs.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0032_runtime_durable_outbound_comms_truth.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0033_runtime_host_local_prompt_cache_export_import_surface.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0035_model_residency_provider_truth_for_local_http_clients.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0037_visualflow_generate_music_node_compiler_parity.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0039_runtime_music_structure_prompt_bool_contract.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/003_wait_primitives.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0040_task_agnostic_local_residency_listing.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0041_runtime_hardware_extras_avoid_nonpermissive_document_stacks.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0042_core_vision_upscale_and_parameter_surface.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0043_runtime_vision_adapter_and_batch_surface.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/004_scheduler_driver.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/005_abstractcore_integration.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/006_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/007_provenance_hash_chain.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/009_artifact_store.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/010_examples_and_composition.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/011_subworkflow_support.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/012_run_store_query_and_scheduler_support.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/013_effect_retries_and_idempotency.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/016_runtime_aware_parameters.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/019_runtime_host_facade_for_core_operator_surfaces.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/020_runtime_gateway_install_boundary.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/021_runtime_gateway_env_namespace_cleanup.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/022_model_residency_control_plane.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/023_truthful_local_media_residency_boundaries.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/024_runtime_owned_run_scoped_media_execution.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/026_runtime_host_discovery_facade_for_core_catalogs.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/027_runtime_durable_bloc_prompt_cache_facade.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/028_runtime_bloc_kv_lifecycle_and_pruning.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/029_runtime_music_generation_and_discovery_via_abstractcore.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/completed/0846_mlx_instance_scheduling_and_execution_controls.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/001_integrations_abstractcore.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/001_runtime_kernel.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/002_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/0034_agent_runtime_convenience_constructor.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/003_provenance_ledger_chain.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/003_wait_resume_and_scheduler.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/004_effect_handlers_and_integrations.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/004_tests.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/005_docs_updates.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/005_examples_and_composition.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/006_ai_fingerprint_and_provenance.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/DEPRECATED_README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/deprecated/abstractruntime_docs_final_02a7373b.plan.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/0070_standalone_wui_browser_session_security_contract.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/008_signatures_and_keys.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/014_remote_tool_worker_executor.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/017_limit_warnings_and_observability.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/018_workspace_access_policy_for_media_and_tools.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/0233_real_run_cancellation.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/025_runtime_retention_and_purge_contract.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/026_context_checkpoint_self_compression.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/027_quote_provenance_discipline.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/028_selective_artifact_rehydration.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/0845_session_prompt_cache_resume_and_purge_contract.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_portability/0065_portable_process_and_lock_layer.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_portability/0066_portable_io_and_media_reader.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_portability/README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0044_meta_analysis_record.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0045_crash_replay_harness_and_ordering_invariant.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0046_per_run_driver_exclusion.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0047_indexed_idempotency_lookup.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0048_durable_io_unification.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0049_llm_client_mechanical_split.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0050_control_sidecar_all_writers.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0051_runtime_owned_durable_event_mailbox.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0052_sync_store_event_loop_tripwire.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0053_bounded_run_vars_growth.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0054_runtime_health_counters.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0055_jsonl_store_honesty.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0064_prompt_cache_fingerprint_stability.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0067_durable_write_discipline.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/0068_hot_path_store_reads.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/planned/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/0031_runtime_tool_spec_adapters_for_gateway_and_mcp.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/0036_local_media_residency_bridge_to_core_residency.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/0038_core_server_pool_residency_affinity.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/0069_document_renderer_professional_figures.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/runtime_systemic_reliability/0056_schema_version_and_quarantine_loading.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/runtime_systemic_reliability/0057_trust_boundary_stamp_registry.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/runtime_systemic_reliability/0058_terminal_run_archival_helper.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/runtime_systemic_reliability/0059_memory_span_handler_extraction.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/runtime_systemic_reliability/0060_visualflow_compiler_decomposition.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/runtime_systemic_reliability/0061_root_api_deprecation_machinery.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/runtime_systemic_reliability/0062_dependency_honesty_extras.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/runtime_systemic_reliability/0063_b3_envelope_lane_unification.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/backlog/proposed/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/entity-runtime.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/evidence.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/faq.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/limits.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/manual_testing.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/mcp-worker.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/proposal.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/provenance.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/snapshots.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/tool-approval.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/tools-comms.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/docs/workflow-bundles.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/emails.config.example.yaml +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/examples/01_hello_world.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/examples/02_ask_user.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/examples/03_wait_until.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/examples/04_multi_step.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/examples/05_persistence.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/examples/06_llm_integration.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/examples/07_react_agent.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/examples/README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/mkdocs.yml +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/pytest.ini +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/scripts/backfill_diary_edges.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/config.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/effect_cancellation.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/event_keys.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/health.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/models.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/policy.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/progress_channel.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/run_lifecycle.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/runtime.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/spec.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/tool_scope.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/core/vars.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/documents/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/documents/charts.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/documents/docx.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/documents/pdf.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/evidence/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/evidence/recorder.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/history_bundle.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/act_only.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/chat.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/communities.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/diary.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/digest.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/entity_runtime.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/fingerprint.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/lease.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/life.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/memory_reader.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/night_voice.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/phase_graph.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/phase_spec.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/prelude.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/prompt_overlay.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/reflection.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/spec/entity_phases.vendored.json +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/substrate.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/tool_effects.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/tool_policy.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/tools.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/identity/visit_workflow.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/agora_tools.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/comms_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/constants.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/data_registry_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/default_tools.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/discovery_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/discovery_queries.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/effect_handlers.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/embeddings_client.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/factory.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/host_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/llm_client.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/local_helper_tools.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/logging.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/mcp_worker.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/media_subprocess.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/observability.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/output_specs.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/run_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/session_attachments.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/summarizer.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/telegram_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/tool_executor.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/tool_inventory_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractcore/workspace_scoped_tools.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractmemory/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractmemory/brain_handlers.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractmemory/effect_handlers.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractmemory/identity_support.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/integrations/abstractmemory/seam_handlers.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/memory/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/memory/active_context.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/memory/active_memory.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/memory/compaction.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/memory/kg_packets.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/memory/memact_composer.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/memory/recall_levels.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/memory/token_budget.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/rendering/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/rendering/agent_trace_report.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/rendering/json_stringify.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/scheduler/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/scheduler/convenience.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/scheduler/multi_store.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/scheduler/registry.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/scheduler/scheduler.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/session_history.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/artifacts.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/base.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/commands.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/in_memory.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/json_files.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/lease.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/ledger_chain.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/ledger_slim.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/observable.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/offloading.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/serialize.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/snapshots.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/sqlite.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/storage/steer_sidecar.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/turn_grounding.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/utils/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/utils/atomic_files.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/utils/file_filters.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/utils/workspace_paths.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/agent_adapter.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/context_adapter.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/control_adapter.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/effect_adapter.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/event_adapter.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/function_adapter.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/memact_adapter.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/subflow_adapter.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/adapters/variable_adapter.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/compiler.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/flow.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/agent_ids.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/builtins.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/code_executor.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/execution_metrics.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/executor.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/function_library.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/models.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/multi_entry_lowering.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/visualflow_compiler/visual/pin_expressions.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/workflow_bundle/__init__.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/workflow_bundle/models.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/workflow_bundle/packer.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/workflow_bundle/reader.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/src/abstractruntime/workflow_bundle/registry.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/README.md +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/conftest.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_abstractcore_comms_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_abstractcore_discovery_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_abstractcore_host_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_abstractcore_run_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_abstractcore_telegram_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_active_context_policy.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_active_memory.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_agora_agent_alias_identity.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_agora_tools_http.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_analyze_media_addressing_and_walling.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_answer_user_effect.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_artifacts.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_browser_probe_target_walling.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_budget_law_no_unrequested_caps.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_capability_default_reasoning.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_chat_summarizer_integration.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_code_node_restricted_python.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_command_store.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_compaction_helpers.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_control_adapter_while.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_crash_ordering_inversions.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_data_registry_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_default_tools_camera_gating.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_default_tools_comms_gating.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_default_tools_include_skim_files.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_default_tools_include_skim_folders.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_default_tools_include_skim_web.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_default_tools_search_files_executor.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_diary_capture.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_diary_write_rescue.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_directory_lease.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_disabled_toolsets_seam.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_discovery_survives_unbuildable_default.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_document_markdown_tables.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_document_renderers_hr_quote.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_durable_toolsets.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_durable_write_discipline.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_e2e_tool_calls_idempotency_lmstudio.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_effect_cancellation.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_effect_issuance_idempotency.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_effect_payload_stays_json_serializable.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_election_consequence_teaching.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_emergence_experiment.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_emit_event_uses_wait_index.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_emit_event_without_workflow_registry.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_endpoint_profile_route_context.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_awake_memory_fixes.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_brain_effects.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_chat_driver.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_chat_tools_reflection.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_diary.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_execute_tool.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_fetch_url_tool.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_life_loop.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_memory_richness.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_phase_graph_conformance.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_recent_memories.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_runtime.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_search_memory.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_sleep_bound_and_yield_attribution.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_substrate_resolution.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_visit_honesty.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_workspace_cap.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_entity_workspace_tools.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_event_wait_index.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_every_path_bearing_tool_is_walled.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_evidence_recorder.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_evidence_recorder_post_policy_envelope.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_execute_command_output_offload.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_execution_capability_discovery.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_factory_default_retry_policy.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_factory_timeouts_default_to_abstractcore_config.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_format_repair_nudge.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_fresh_install_no_provider.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_gateway_facades_c4899.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_git_read_only_refiner.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_hot_path_store_reads.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_indexed_idempotency_lookup.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_integration_abstractcore.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_integrations_abstractcore.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_json_file_run_store_children_index.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_json_run_cache_bound.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_json_store_scan_memo.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_jsonl_ledger_recovery.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_kg_learn_and_recall_contract.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_ledger_chain.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_ledger_record_slimming.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_ledger_subscription.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_media_artifact_refs.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_media_artifact_refs_persist_across_restart.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_media_uses_source_path_label.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_payload_shape_refusal.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_requires_prompt.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_response_schema_normalization.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_structured_output_fallback.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_text_phase_progress.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_truncation_retry_contract.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_use_context_appends_turn.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_call_verbatim_payload_capture.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_client_grounding_tail.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_client_media_artifacts.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_client_system_context.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_client_tool_call_parsing.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_retry_classification.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_llm_streaming_on_token.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_local_helper_tool_exposure.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_local_residency_host_sweep.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_local_runtime_timeout_kwarg_policy.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_max_iterations_ceiling.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_mcp_remote_tool_executor.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_mcp_worker_logging.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_mcp_worker_security.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_mcp_worker_stdio.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_media_artifact_resolution.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_media_capability_default_routing.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_media_subprocess.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memact_composer_from_kg_result.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_appraise_handler.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_communities.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_kg_assert_attributes_defaults.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_kg_packets.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_kg_predicate_aliasing.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_kg_query_packetization_restart.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_kg_query_recall_level_policy.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_kg_semantic_query_ranking.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_note_effect.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_query_effect.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_query_rich_filters.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_scope_and_rehydrate_effect.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_seam_handlers.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_seam_sqlite_durability.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_memory_tag_effect.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_mlx_generation_serialization.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_model_eject_cancel.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_model_residency_control_plane.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_model_residency_lock_and_context_estimate.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_multi_store_scheduler.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_multimodal_abstractcore_integration.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_native_mlx_application_wiring.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_native_mlx_execution_controls_live.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_native_tool_channel.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_night_voice.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_no_default_provider_refusal_ux.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_offload_answer_chain_c4978.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_offloaded_node_traces_report_unknown_not_zero.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_offloading.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_parallel_readonly_tool_execution.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_pause_resume.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_pdf_unicode_rendering.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_personal_cycle.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_phantom_attachment_index.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_phase_graph_artifact_control.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_phase_graph_obedience.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_phase_vocabulary_migration.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_pooled_client_strips_construction_cache_key.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_prompt_cache_export_import.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_prompt_cache_fingerprint_stability.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_prompt_cache_modules.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_prompt_cache_posture_inheritance.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_prompt_cache_thinking_and_prompt_only.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_prompt_overlay.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_provider_endpoint_profile_resolution.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_provider_pin_routing_isolation.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_queryable_run_store.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_read_file_fallback_to_session_attachments.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_read_idle_threading.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_readoption_experiment.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_real_integration.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_realize_election.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_recall_levels_policy.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_remote_client_cancel.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_remote_llm_client.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_remote_speculation_defaults.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_rendering_agent_trace_report.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_rendering_json_stringify.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_report_branding.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_retry_idempotency.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_run_history_bundle.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_run_scoped_tool_policy.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_run_tool_scope_ceiling.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_browser_session_boundary.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_config_max_output_tokens_fallback.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_default_provider_model_refresh.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_effect_invocation_trace.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_health_and_bounded_vars.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_install_boundary.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_llm_call_grounding_in_ledger.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_node_traces.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_start_seeds_tool_support.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_runtime_tick_step_gate.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_scheduler.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_send_email_refiner.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_session_attachments_registry_and_open_tool.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_session_history.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_session_prompt_cache_attribution.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_session_prompt_cache_visibility.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_session_route_stamp.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_shell_tool_exposure.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_snapshots.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_speculation_inheritance.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_speculation_reaches_provider_construction.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_sqlite_ledger_store.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_start_subworkflow_async_wait.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_start_subworkflow_inherit_context_merges_messages.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_start_subworkflow_workspace_inheritance.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_steer_sidecar.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_storage_deletion.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_structured_output_schema_enum.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_subworkflow.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_terminal_effect_completion.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_terminal_resume_appends_ledger_completion.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_thinking_inheritance.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tick_completion_includes_output_in_ledger.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_approval_executor.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_approval_resume_executes.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_approval_wait_key_identity.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_calls_idempotency_keys.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_catalog.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_descriptor_registry.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_executor_argument_sanitization.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_executor_error_output_detection.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_executor_filename_alias.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_executor_kwarg_canonicalization.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_executor_read_file_aliases.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_executor_timeout.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_inventory_facade.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_invoke_effect.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_policy_and_mounts.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_tool_wait_allowlist_safety.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_topic_election_world_model.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_trace_context_propagation.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_turn_grounding_byte_stability.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_turn_grounding_carriers_a3.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_vars_query_effect.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visit_ab_fixture.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visit_history_replay_caps.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visit_midturn_elections.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visit_midturn_resume.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visit_workflow.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_agent_output_context_includes_messages.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_agent_skills_block_passthrough.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_agent_tool_observations_persist_across_restart.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_agent_use_context_inherits_attachments.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_agent_use_context_persists_tool_observations.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_agent_use_context_persists_turn.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_entity_memory_nodes.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_flow_end_effect_only_persistence.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_llm_call_partial_override.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_llm_call_schema_ref_resolution.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_memact_compose_node.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_memory_kg_query_outputs_propagate.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_memory_kg_resolve_outputs_propagate.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_multi_entry_loop_overrides.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_unknown_node_type_refuses.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visual_wait_event_deadline_passthrough.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_add_message_builtin.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_add_message_node_appends_to_active_context.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_agora_react_agent.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_call_tool_node.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_capability_routes_and_thinking.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_compiler_basic.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_context_and_builder_nodes.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_continue_on_error.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_edit_json_schema_node.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_event_inbox_react_agent.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_file_nodes_workspace.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_function_library.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_get_element_node.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_get_random_element_node.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_get_var_node.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_has_tools_builtin.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_llm_call_context_attachments_map_to_media.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_llm_call_multimodal_output.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_make_object_node.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_media_nodes.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_memory_effect_nodes.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_memory_source_pins.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_pin_expressions.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_prompt_only.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_random_nodes.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_schema_enum_switch.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_string_contains_replace.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_visualflow_tool_parameters_node.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_w4_feelings_lens.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_wait_event_deadline.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_wait_event_prompt_metadata.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_wait_until_streak.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_wait_until_utc_normalization.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_workflow_bundle_registry.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_workspace_policy_absolute_reanchor.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_workspace_policy_allowlist_mode.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_workspace_policy_mount_virtual_paths.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_workspace_policy_tool_calls_persist_across_restart.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_workspace_prompt_context.py +0 -0
- {abstractruntime-0.4.32 → abstractruntime-0.4.33}/tests/test_write_chart.py +0 -0
|
@@ -7,6 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.4.33] - 2026-09-23
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **Models and engines for hosts.** `config_facade` passes AbstractCore's
|
|
14
|
+
models and engines features through to hosts, so the Gateway can offer the
|
|
15
|
+
same model browser and engine installer as `abstractcore models` and
|
|
16
|
+
`abstractcore engines` without importing AbstractCore:
|
|
17
|
+
`host_profile`, `engine_inventory`, `engine_status`,
|
|
18
|
+
`engine_install_plan`, `engine_download_url`, `engine_install`,
|
|
19
|
+
`model_catalog`, `list_installed_models`, `model_delete_blockers`,
|
|
20
|
+
`delete_model_artifact`, `start_model_download_job`, `host_jobs_list`,
|
|
21
|
+
`host_job`, `host_job_cancel` and `console_fragment`. Payloads are
|
|
22
|
+
AbstractCore's own (`host_profile_v1`, `engines_status_v1`,
|
|
23
|
+
`model_catalog_v1`, `models_installed_v1`, `host_job_v1`).
|
|
24
|
+
- `models_engines_support()` reports whether the installed AbstractCore has
|
|
25
|
+
these modules. It never raises.
|
|
26
|
+
- `AbstractCoreTooOld` (a `NotImplementedError`) is raised when the installed
|
|
27
|
+
AbstractCore predates these modules. The message names the installed
|
|
28
|
+
version and the upgrade command.
|
|
29
|
+
- `HostActionRefused` carries an HTTP status and a structured body for
|
|
30
|
+
refusals: engine installs not allowed, unknown engine, an install already
|
|
31
|
+
running, a delete blocked by a loaded or shared model. Hosts no longer need
|
|
32
|
+
AbstractCore's exception types to tell refusals apart.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
- The AbstractCore floor is now 2.14.0 in the base install and in the `apple`
|
|
36
|
+
and `gpu` extras.
|
|
37
|
+
|
|
10
38
|
## [0.4.32] - 2026-09-23
|
|
11
39
|
|
|
12
40
|
This release also contains everything listed under 0.4.31, which was never
|
|
@@ -827,7 +855,9 @@ AbstractRuntime is the durable execution substrate designed to pair with Abstrac
|
|
|
827
855
|
|
|
828
856
|
Initial development version with basic proof-of-concept features.
|
|
829
857
|
|
|
830
|
-
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.4.
|
|
858
|
+
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.4.33...HEAD
|
|
859
|
+
[0.4.33]: https://github.com/lpalbou/abstractruntime/compare/v0.4.32...v0.4.33
|
|
860
|
+
[0.4.32]: https://github.com/lpalbou/abstractruntime/compare/v0.4.29...v0.4.32
|
|
831
861
|
[0.4.31]: https://github.com/lpalbou/abstractruntime/compare/v0.4.29...v0.4.31
|
|
832
862
|
[0.4.29]: https://github.com/lpalbou/abstractruntime/compare/v0.4.28...v0.4.29
|
|
833
863
|
[0.4.28]: https://github.com/lpalbou/abstractruntime/compare/v0.4.27...v0.4.28
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: AbstractRuntime
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.33
|
|
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.14.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.14.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.14.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.4.
|
|
57
|
+
**Version:** 0.4.33 • **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.14.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.4.
|
|
149
|
+
## What’s included (v0.4.33)
|
|
150
150
|
|
|
151
151
|
Kernel (import-light):
|
|
152
152
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -189,6 +189,7 @@ 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 (AbstractCore 2.14.0+): `config_facade` passes through the host profile, local-engine status and installs, the model catalog with fit verdicts, installed models, deletes, host jobs and the embeddable console screens: `docs/integrations/abstractcore.md#models-engines-and-host-jobs-config-facade`
|
|
192
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.
|
|
193
194
|
- AbstractMemory TripleStore integration for `MEMORY_KG_*` effects. Runtime
|
|
194
195
|
depends on the light AbstractMemory contract; hosts choose storage backends
|
|
@@ -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.4.
|
|
7
|
+
**Version:** 0.4.33 • **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.14.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.4.
|
|
99
|
+
## What’s included (v0.4.33)
|
|
100
100
|
|
|
101
101
|
Kernel (import-light):
|
|
102
102
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -139,6 +139,7 @@ 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 (AbstractCore 2.14.0+): `config_facade` passes through the host profile, local-engine status and installs, the model catalog with fit verdicts, installed models, deletes, host jobs and the embeddable console screens: `docs/integrations/abstractcore.md#models-engines-and-host-jobs-config-facade`
|
|
142
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.
|
|
143
144
|
- AbstractMemory TripleStore integration for `MEMORY_KG_*` effects. Runtime
|
|
144
145
|
depends on the light AbstractMemory contract; hosts choose storage backends
|
|
@@ -216,7 +216,7 @@ from Core route resolution and persisted from `LLM_CALL` results.
|
|
|
216
216
|
|
|
217
217
|
### AbstractCore (LLM + tools)
|
|
218
218
|
|
|
219
|
-
Requires: `pip install abstractruntime` (AbstractCore 2.
|
|
219
|
+
Requires: `pip install abstractruntime` (AbstractCore 2.14.0 or newer is part of the base install).
|
|
220
220
|
|
|
221
221
|
Implementation: `src/abstractruntime/integrations/abstractcore/*`.
|
|
222
222
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# AbstractRuntime — Architecture
|
|
2
2
|
|
|
3
3
|
> Updated: 2026-08-27
|
|
4
|
-
> Version: 0.4.
|
|
4
|
+
> Version: 0.4.33
|
|
5
5
|
> Scope: this describes **what is implemented in this repository**.
|
|
6
6
|
|
|
7
7
|
AbstractRuntime is a **durable workflow runtime**: it executes workflow graphs as a persisted state machine with explicit waits (user, time, events, jobs, subworkflows). A run can pause for hours/days and resume **without** keeping Python stacks/coroutines alive.
|
|
@@ -12,7 +12,7 @@ Remote-light runtime:
|
|
|
12
12
|
pip install abstractruntime
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
This installs AbstractCore 2.
|
|
15
|
+
This installs AbstractCore 2.14.0 or newer with remote provider, vision,
|
|
16
16
|
voice, audio, music, tool, and MCP-worker support. The base install is
|
|
17
17
|
remote-light: it can route multimodal workflows to hosted or OpenAI-compatible
|
|
18
18
|
endpoints, but it does not select local inferencer stacks such as MLX, vLLM,
|
|
@@ -16,7 +16,7 @@ Implementation pointers (this repo):
|
|
|
16
16
|
pip install abstractruntime
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
The base install includes AbstractCore 2.
|
|
19
|
+
The base install includes AbstractCore 2.14.0 or newer. That is the supported baseline for the current server auth split (`Authorization` for server auth, `X-AbstractCore-Provider-API-Key` for provider overrides), generated-media contracts, image upscaling, capability catalog, prompt-cache control-plane endpoints (including session attribution via `/acore/prompt_cache/key_meta`), host memory snapshots, the host-wide loaded-model sweep used by residency listings, durable bloc prompt-cache helpers, bindings and lifecycle operations, task-aware model residency for text/image/video/TTS/STT, current tool catalog, AbstractCore's public output-selector contract, async/sync text-generation output-selector parity, video generation endpoints, the public local vision-cache catalog helper used by Runtime discovery, vision adapter discovery plus batch/LoRA media controls, and the released shared workspace/file-filter utility surface used by Runtime packaging and integration checks.
|
|
20
20
|
|
|
21
21
|
The base install also includes the remote-light media/capability plugins needed
|
|
22
22
|
for AbstractCore's multimodal `generate(..., output=...)` path. Local
|
|
@@ -667,6 +667,59 @@ caches = facade.list_session_prompt_caches(session_id="support-session-1")
|
|
|
667
667
|
result = facade.clear_session_prompt_caches("support-session-1")
|
|
668
668
|
```
|
|
669
669
|
|
|
670
|
+
## Models, engines and host jobs (config facade)
|
|
671
|
+
|
|
672
|
+
AbstractCore 2.14.0 implements the model browser, the local-engine installer and
|
|
673
|
+
a host job registry. `abstractruntime.integrations.abstractcore.config_facade`
|
|
674
|
+
passes them through unchanged, so a host such as AbstractGateway serves the same
|
|
675
|
+
payloads as `abstractcore models|engines … --json` and the `/acore/*` routes
|
|
676
|
+
without importing AbstractCore itself.
|
|
677
|
+
|
|
678
|
+
| Function | Returns |
|
|
679
|
+
|---|---|
|
|
680
|
+
| `host_profile(refresh=False)` | `host_profile_v1`: OS, accelerator, memory ceiling, free disk per model store |
|
|
681
|
+
| `engine_inventory(probe=False)` | `engines_status_v1`: Ollama, LM Studio, MLX, llama.cpp, vLLM, Hugging Face; installed, running, install plan |
|
|
682
|
+
| `engine_status(engine_id, probe=False)` | one engine row |
|
|
683
|
+
| `engine_install_plan(engine_id)` | the fixed install command (`argv`), method, download URL and notes for this host |
|
|
684
|
+
| `engine_download_url(engine_id)` | the vendor download page |
|
|
685
|
+
| `engine_install(engine_id, dry_run=False, force=False, allow=None)` | a `host_job_v1` job of kind `engine_install` |
|
|
686
|
+
| `model_catalog(q=None, engine=None, fits_only=False, hub=False)` | `model_catalog_v1`: downloadable models with presence and a fit verdict |
|
|
687
|
+
| `list_installed_models(provider=None)` | `models_installed_v1`: installed models per engine, with sizes |
|
|
688
|
+
| `model_delete_blockers(provider, artifact)` | what would stop a delete (reads only) |
|
|
689
|
+
| `delete_model_artifact(provider, artifact, dry_run=False, force=False)` | a `host_job_v1` job of kind `delete` |
|
|
690
|
+
| `start_model_download_job(provider, artifact, dry_run=False)` | a `host_job_v1` job of kind `download` (single-flight per artifact) |
|
|
691
|
+
| `host_jobs_list(kind=None, status=None)` | `{"schema": "host_jobs_v1", "jobs": [...]}`, newest first, including jobs started by other processes on the host |
|
|
692
|
+
| `host_job(job_id)` / `host_job_cancel(job_id)` | one job, or `None` when the id is unknown |
|
|
693
|
+
| `console_fragment(kind)` | AbstractCore's embeddable web screen (`models` or `engines`): `{"html", "js", "css"}` |
|
|
694
|
+
| `models_engines_support()` | `{"available", "abstractcore_version", "required", "missing"}`; never raises |
|
|
695
|
+
|
|
696
|
+
Job-starting calls run in the background and return the queued job; a dry run
|
|
697
|
+
(and `run_inline=True`) finishes on the calling thread and returns the finished
|
|
698
|
+
job.
|
|
699
|
+
|
|
700
|
+
Errors a host can map to HTTP statuses:
|
|
701
|
+
|
|
702
|
+
- `AbstractCoreTooOld` (a `NotImplementedError`): the installed AbstractCore
|
|
703
|
+
predates these modules. The message names the installed version and the
|
|
704
|
+
upgrade command. Map it to 501.
|
|
705
|
+
- `RuntimeError`: AbstractCore is not installed. Map it to 503.
|
|
706
|
+
- `HostActionRefused`: a refusal with `status_code` and `payload()`. Examples:
|
|
707
|
+
403 `not_allowed` (engine installs disabled by the host's policy), 404
|
|
708
|
+
`not_found` / `unknown_engine`, 409 `busy` (an engine install is already
|
|
709
|
+
running), 409 `refused` with `delete_blockers` (the model is loaded or shares
|
|
710
|
+
a cache; pass `force=True` to override).
|
|
711
|
+
|
|
712
|
+
```python
|
|
713
|
+
from abstractruntime.integrations.abstractcore import config_facade as core
|
|
714
|
+
|
|
715
|
+
core.engine_inventory(probe=True)["engines"][0]["install"]["argv"] # e.g. ["brew", "install", "ollama"]
|
|
716
|
+
job = core.engine_install("ollama", dry_run=True) # finished job, nothing runs
|
|
717
|
+
try:
|
|
718
|
+
core.delete_model_artifact("ollama", "qwen3:8b", dry_run=True)
|
|
719
|
+
except core.HostActionRefused as refused:
|
|
720
|
+
print(refused.status_code, refused.payload())
|
|
721
|
+
```
|
|
722
|
+
|
|
670
723
|
## Model residency listings
|
|
671
724
|
|
|
672
725
|
`list_model_residency(...)` relays Core-owned residency truth (ADR-0007) and, for text-generation listings, includes the whole host:
|
|
@@ -20,7 +20,7 @@ Fix:
|
|
|
20
20
|
- Install or upgrade the base Runtime package. LLM/tools integration, common
|
|
21
21
|
remote-light multimodal dependencies, and the MCP worker entry point are part
|
|
22
22
|
of the base install.
|
|
23
|
-
- The current AbstractCore integration expects `abstractcore>=2.
|
|
23
|
+
- The current AbstractCore integration expects `abstractcore>=2.14.0`.
|
|
24
24
|
|
|
25
25
|
Verify:
|
|
26
26
|
|
|
@@ -13,7 +13,7 @@ It is generated from `llms.txt` in first-link order, de-duplicated, with repo-ro
|
|
|
13
13
|
|
|
14
14
|
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.
|
|
15
15
|
|
|
16
|
-
**Version:** 0.4.
|
|
16
|
+
**Version:** 0.4.33 • **Python:** 3.10+
|
|
17
17
|
|
|
18
18
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
19
19
|
|
|
@@ -41,7 +41,7 @@ Remote-light runtime:
|
|
|
41
41
|
pip install abstractruntime
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
The base install includes AbstractCore 2.
|
|
44
|
+
The base install includes AbstractCore 2.14.0 or newer with remote provider,
|
|
45
45
|
tool, vision, voice, audio, and music integration, plus the
|
|
46
46
|
`abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
|
|
47
47
|
default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
|
|
@@ -105,7 +105,7 @@ state = rt.resume(
|
|
|
105
105
|
assert state.status.value == "completed"
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
## What’s included (v0.4.
|
|
108
|
+
## What’s included (v0.4.33)
|
|
109
109
|
|
|
110
110
|
Kernel (import-light):
|
|
111
111
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -148,6 +148,7 @@ Drivers + distribution:
|
|
|
148
148
|
|
|
149
149
|
Runtime-owned integrations:
|
|
150
150
|
- 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`
|
|
151
|
+
- AbstractCore models and engines for hosts (AbstractCore 2.14.0+): `config_facade` passes through the host profile, local-engine status and installs, the model catalog with fit verdicts, installed models, deletes, host jobs and the embeddable console screens: `docs/integrations/abstractcore.md#models-engines-and-host-jobs-config-facade`
|
|
151
152
|
- 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.
|
|
152
153
|
- AbstractMemory TripleStore integration for `MEMORY_KG_*` effects. Runtime
|
|
153
154
|
depends on the light AbstractMemory contract; hosts choose storage backends
|
|
@@ -234,7 +235,7 @@ Remote-light runtime:
|
|
|
234
235
|
pip install abstractruntime
|
|
235
236
|
```
|
|
236
237
|
|
|
237
|
-
This installs AbstractCore 2.
|
|
238
|
+
This installs AbstractCore 2.14.0 or newer with remote provider, vision,
|
|
238
239
|
voice, audio, music, tool, and MCP-worker support. The base install is
|
|
239
240
|
remote-light: it can route multimodal workflows to hosted or OpenAI-compatible
|
|
240
241
|
endpoints, but it does not select local inferencer stacks such as MLX, vLLM,
|
|
@@ -593,7 +594,7 @@ from Core route resolution and persisted from `LLM_CALL` results.
|
|
|
593
594
|
|
|
594
595
|
### AbstractCore (LLM + tools)
|
|
595
596
|
|
|
596
|
-
Requires: `pip install abstractruntime` (AbstractCore 2.
|
|
597
|
+
Requires: `pip install abstractruntime` (AbstractCore 2.14.0 or newer is part of the base install).
|
|
597
598
|
|
|
598
599
|
Implementation: `src/abstractruntime/integrations/abstractcore/*`.
|
|
599
600
|
|
|
@@ -683,7 +684,7 @@ This provides handlers for `MEMORY_KG_*` effects (opt-in wiring layer).
|
|
|
683
684
|
# AbstractRuntime — Architecture
|
|
684
685
|
|
|
685
686
|
> Updated: 2026-08-27
|
|
686
|
-
> Version: 0.4.
|
|
687
|
+
> Version: 0.4.33
|
|
687
688
|
> Scope: this describes **what is implemented in this repository**.
|
|
688
689
|
|
|
689
690
|
AbstractRuntime is a **durable workflow runtime**: it executes workflow graphs as a persisted state machine with explicit waits (user, time, events, jobs, subworkflows). A run can pause for hours/days and resume **without** keeping Python stacks/coroutines alive.
|
|
@@ -1356,7 +1357,7 @@ Fix:
|
|
|
1356
1357
|
- Install or upgrade the base Runtime package. LLM/tools integration, common
|
|
1357
1358
|
remote-light multimodal dependencies, and the MCP worker entry point are part
|
|
1358
1359
|
of the base install.
|
|
1359
|
-
- The current AbstractCore integration expects `abstractcore>=2.
|
|
1360
|
+
- The current AbstractCore integration expects `abstractcore>=2.14.0`.
|
|
1360
1361
|
|
|
1361
1362
|
Verify:
|
|
1362
1363
|
|
|
@@ -1831,7 +1832,7 @@ Implementation pointers (this repo):
|
|
|
1831
1832
|
pip install abstractruntime
|
|
1832
1833
|
```
|
|
1833
1834
|
|
|
1834
|
-
The base install includes AbstractCore 2.
|
|
1835
|
+
The base install includes AbstractCore 2.14.0 or newer. That is the supported baseline for the current server auth split (`Authorization` for server auth, `X-AbstractCore-Provider-API-Key` for provider overrides), generated-media contracts, image upscaling, capability catalog, prompt-cache control-plane endpoints (including session attribution via `/acore/prompt_cache/key_meta`), host memory snapshots, the host-wide loaded-model sweep used by residency listings, durable bloc prompt-cache helpers, bindings and lifecycle operations, task-aware model residency for text/image/video/TTS/STT, current tool catalog, AbstractCore's public output-selector contract, async/sync text-generation output-selector parity, video generation endpoints, the public local vision-cache catalog helper used by Runtime discovery, vision adapter discovery plus batch/LoRA media controls, and the released shared workspace/file-filter utility surface used by Runtime packaging and integration checks.
|
|
1835
1836
|
|
|
1836
1837
|
The base install also includes the remote-light media/capability plugins needed
|
|
1837
1838
|
for AbstractCore's multimodal `generate(..., output=...)` path. Local
|
|
@@ -2482,6 +2483,59 @@ caches = facade.list_session_prompt_caches(session_id="support-session-1")
|
|
|
2482
2483
|
result = facade.clear_session_prompt_caches("support-session-1")
|
|
2483
2484
|
```
|
|
2484
2485
|
|
|
2486
|
+
## Models, engines and host jobs (config facade)
|
|
2487
|
+
|
|
2488
|
+
AbstractCore 2.14.0 implements the model browser, the local-engine installer and
|
|
2489
|
+
a host job registry. `abstractruntime.integrations.abstractcore.config_facade`
|
|
2490
|
+
passes them through unchanged, so a host such as AbstractGateway serves the same
|
|
2491
|
+
payloads as `abstractcore models|engines … --json` and the `/acore/*` routes
|
|
2492
|
+
without importing AbstractCore itself.
|
|
2493
|
+
|
|
2494
|
+
| Function | Returns |
|
|
2495
|
+
|---|---|
|
|
2496
|
+
| `host_profile(refresh=False)` | `host_profile_v1`: OS, accelerator, memory ceiling, free disk per model store |
|
|
2497
|
+
| `engine_inventory(probe=False)` | `engines_status_v1`: Ollama, LM Studio, MLX, llama.cpp, vLLM, Hugging Face; installed, running, install plan |
|
|
2498
|
+
| `engine_status(engine_id, probe=False)` | one engine row |
|
|
2499
|
+
| `engine_install_plan(engine_id)` | the fixed install command (`argv`), method, download URL and notes for this host |
|
|
2500
|
+
| `engine_download_url(engine_id)` | the vendor download page |
|
|
2501
|
+
| `engine_install(engine_id, dry_run=False, force=False, allow=None)` | a `host_job_v1` job of kind `engine_install` |
|
|
2502
|
+
| `model_catalog(q=None, engine=None, fits_only=False, hub=False)` | `model_catalog_v1`: downloadable models with presence and a fit verdict |
|
|
2503
|
+
| `list_installed_models(provider=None)` | `models_installed_v1`: installed models per engine, with sizes |
|
|
2504
|
+
| `model_delete_blockers(provider, artifact)` | what would stop a delete (reads only) |
|
|
2505
|
+
| `delete_model_artifact(provider, artifact, dry_run=False, force=False)` | a `host_job_v1` job of kind `delete` |
|
|
2506
|
+
| `start_model_download_job(provider, artifact, dry_run=False)` | a `host_job_v1` job of kind `download` (single-flight per artifact) |
|
|
2507
|
+
| `host_jobs_list(kind=None, status=None)` | `{"schema": "host_jobs_v1", "jobs": [...]}`, newest first, including jobs started by other processes on the host |
|
|
2508
|
+
| `host_job(job_id)` / `host_job_cancel(job_id)` | one job, or `None` when the id is unknown |
|
|
2509
|
+
| `console_fragment(kind)` | AbstractCore's embeddable web screen (`models` or `engines`): `{"html", "js", "css"}` |
|
|
2510
|
+
| `models_engines_support()` | `{"available", "abstractcore_version", "required", "missing"}`; never raises |
|
|
2511
|
+
|
|
2512
|
+
Job-starting calls run in the background and return the queued job; a dry run
|
|
2513
|
+
(and `run_inline=True`) finishes on the calling thread and returns the finished
|
|
2514
|
+
job.
|
|
2515
|
+
|
|
2516
|
+
Errors a host can map to HTTP statuses:
|
|
2517
|
+
|
|
2518
|
+
- `AbstractCoreTooOld` (a `NotImplementedError`): the installed AbstractCore
|
|
2519
|
+
predates these modules. The message names the installed version and the
|
|
2520
|
+
upgrade command. Map it to 501.
|
|
2521
|
+
- `RuntimeError`: AbstractCore is not installed. Map it to 503.
|
|
2522
|
+
- `HostActionRefused`: a refusal with `status_code` and `payload()`. Examples:
|
|
2523
|
+
403 `not_allowed` (engine installs disabled by the host's policy), 404
|
|
2524
|
+
`not_found` / `unknown_engine`, 409 `busy` (an engine install is already
|
|
2525
|
+
running), 409 `refused` with `delete_blockers` (the model is loaded or shares
|
|
2526
|
+
a cache; pass `force=True` to override).
|
|
2527
|
+
|
|
2528
|
+
```python
|
|
2529
|
+
from abstractruntime.integrations.abstractcore import config_facade as core
|
|
2530
|
+
|
|
2531
|
+
core.engine_inventory(probe=True)["engines"][0]["install"]["argv"] # e.g. ["brew", "install", "ollama"]
|
|
2532
|
+
job = core.engine_install("ollama", dry_run=True) # finished job, nothing runs
|
|
2533
|
+
try:
|
|
2534
|
+
core.delete_model_artifact("ollama", "qwen3:8b", dry_run=True)
|
|
2535
|
+
except core.HostActionRefused as refused:
|
|
2536
|
+
print(refused.status_code, refused.payload())
|
|
2537
|
+
```
|
|
2538
|
+
|
|
2485
2539
|
## Model residency listings
|
|
2486
2540
|
|
|
2487
2541
|
`list_model_residency(...)` relays Core-owned residency truth (ADR-0007) and, for text-generation listings, includes the whole host:
|
|
@@ -3591,6 +3645,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
3591
3645
|
|
|
3592
3646
|
## [Unreleased]
|
|
3593
3647
|
|
|
3648
|
+
## [0.4.33] - 2026-09-23
|
|
3649
|
+
|
|
3650
|
+
### Added
|
|
3651
|
+
- **Models and engines for hosts.** `config_facade` passes AbstractCore's
|
|
3652
|
+
models and engines features through to hosts, so the Gateway can offer the
|
|
3653
|
+
same model browser and engine installer as `abstractcore models` and
|
|
3654
|
+
`abstractcore engines` without importing AbstractCore:
|
|
3655
|
+
`host_profile`, `engine_inventory`, `engine_status`,
|
|
3656
|
+
`engine_install_plan`, `engine_download_url`, `engine_install`,
|
|
3657
|
+
`model_catalog`, `list_installed_models`, `model_delete_blockers`,
|
|
3658
|
+
`delete_model_artifact`, `start_model_download_job`, `host_jobs_list`,
|
|
3659
|
+
`host_job`, `host_job_cancel` and `console_fragment`. Payloads are
|
|
3660
|
+
AbstractCore's own (`host_profile_v1`, `engines_status_v1`,
|
|
3661
|
+
`model_catalog_v1`, `models_installed_v1`, `host_job_v1`).
|
|
3662
|
+
- `models_engines_support()` reports whether the installed AbstractCore has
|
|
3663
|
+
these modules. It never raises.
|
|
3664
|
+
- `AbstractCoreTooOld` (a `NotImplementedError`) is raised when the installed
|
|
3665
|
+
AbstractCore predates these modules. The message names the installed
|
|
3666
|
+
version and the upgrade command.
|
|
3667
|
+
- `HostActionRefused` carries an HTTP status and a structured body for
|
|
3668
|
+
refusals: engine installs not allowed, unknown engine, an install already
|
|
3669
|
+
running, a delete blocked by a loaded or shared model. Hosts no longer need
|
|
3670
|
+
AbstractCore's exception types to tell refusals apart.
|
|
3671
|
+
|
|
3672
|
+
### Changed
|
|
3673
|
+
- The AbstractCore floor is now 2.14.0 in the base install and in the `apple`
|
|
3674
|
+
and `gpu` extras.
|
|
3675
|
+
|
|
3594
3676
|
## [0.4.32] - 2026-09-23
|
|
3595
3677
|
|
|
3596
3678
|
This release also contains everything listed under 0.4.31, which was never
|
|
@@ -4409,7 +4491,9 @@ AbstractRuntime is the durable execution substrate designed to pair with Abstrac
|
|
|
4409
4491
|
|
|
4410
4492
|
Initial development version with basic proof-of-concept features.
|
|
4411
4493
|
|
|
4412
|
-
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.4.
|
|
4494
|
+
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.4.33...HEAD
|
|
4495
|
+
[0.4.33]: https://github.com/lpalbou/abstractruntime/compare/v0.4.32...v0.4.33
|
|
4496
|
+
[0.4.32]: https://github.com/lpalbou/abstractruntime/compare/v0.4.29...v0.4.32
|
|
4413
4497
|
[0.4.31]: https://github.com/lpalbou/abstractruntime/compare/v0.4.29...v0.4.31
|
|
4414
4498
|
[0.4.29]: https://github.com/lpalbou/abstractruntime/compare/v0.4.28...v0.4.29
|
|
4415
4499
|
[0.4.28]: https://github.com/lpalbou/abstractruntime/compare/v0.4.27...v0.4.28
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
> Durable workflow runtime (interrupt → checkpoint → resume) with an append-only execution ledger.
|
|
4
4
|
|
|
5
5
|
- Python: 3.10+ (see `pyproject.toml`)
|
|
6
|
-
- Version: 0.4.
|
|
6
|
+
- Version: 0.4.33
|
|
7
7
|
- Ecosystem: [AbstractFramework](https://github.com/lpalbou/AbstractFramework) umbrella, integrates with [AbstractCore](https://github.com/lpalbou/abstractcore)
|
|
8
8
|
- Hard invariant: `RunState.vars` must be JSON-serializable (`src/abstractruntime/core/models.py`)
|
|
9
|
-
- Current AbstractCore baseline: base `abstractruntime` installs `abstractcore[remote,tools,vision,voice,audio,music]>=2.
|
|
9
|
+
- Current AbstractCore baseline: base `abstractruntime` installs `abstractcore[remote,tools,vision,voice,audio,music]>=2.14.0`
|
|
10
10
|
- Install profiles: base `abstractruntime` is remote-light with MCP, generated media routing, and Runtime-owned permissive PDF read/write nodes; `abstractruntime[apple]` and `abstractruntime[gpu]` add local inferencer stacks.
|
|
11
11
|
- Config boundary: Runtime does not read `ABSTRACTGATEWAY_*`; Gateway-owned config should be translated into explicit Runtime inputs or Runtime-owned env names. Hosts can attach `resolve_provider_endpoint_profile(provider_id)` to the LLM client; Runtime treats it as an optional resolver hook, injects transient provider/base URL/key params for the call, and redacts secret-like params from persisted observability.
|
|
12
12
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "AbstractRuntime"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.33"
|
|
8
8
|
description = "AbstractRuntime: a durable graph runner designed to pair with AbstractCore."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -50,7 +50,7 @@ dependencies = [
|
|
|
50
50
|
# Runtime's base install is the remote-light workflow host: LLM/tool effects,
|
|
51
51
|
# MCP worker support, and multimodal routing are available without selecting
|
|
52
52
|
# local inference engines.
|
|
53
|
-
"abstractcore[remote,tools,vision,voice,audio,music]>=2.
|
|
53
|
+
"abstractcore[remote,tools,vision,voice,audio,music]>=2.14.0",
|
|
54
54
|
"openai<2.0.0,>=1.109.1",
|
|
55
55
|
"httpx<1.0.0,>=0.28.1",
|
|
56
56
|
"anyio<5.0.0,>=4.12.1",
|
|
@@ -67,12 +67,12 @@ dependencies = [
|
|
|
67
67
|
|
|
68
68
|
[project.optional-dependencies]
|
|
69
69
|
apple = [
|
|
70
|
-
"abstractcore[all-apple]>=2.
|
|
70
|
+
"abstractcore[all-apple]>=2.14.0",
|
|
71
71
|
"setuptools<82.0.0,>=80.10.2",
|
|
72
72
|
]
|
|
73
73
|
|
|
74
74
|
gpu = [
|
|
75
|
-
"abstractcore[all-gpu]>=2.
|
|
75
|
+
"abstractcore[all-gpu]>=2.14.0",
|
|
76
76
|
# vLLM 0.9-0.19 caps setuptools below 80; 77.0.3 is still a modern floor.
|
|
77
77
|
"setuptools<82.0.0,>=77.0.3",
|
|
78
78
|
]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
### Added
|
|
2
|
+
- **Models and engines for hosts.** `config_facade` passes AbstractCore's
|
|
3
|
+
models and engines features through to hosts, so the Gateway can offer the
|
|
4
|
+
same model browser and engine installer as `abstractcore models` and
|
|
5
|
+
`abstractcore engines` without importing AbstractCore:
|
|
6
|
+
`host_profile`, `engine_inventory`, `engine_status`,
|
|
7
|
+
`engine_install_plan`, `engine_download_url`, `engine_install`,
|
|
8
|
+
`model_catalog`, `list_installed_models`, `model_delete_blockers`,
|
|
9
|
+
`delete_model_artifact`, `start_model_download_job`, `host_jobs_list`,
|
|
10
|
+
`host_job`, `host_job_cancel` and `console_fragment`. Payloads are
|
|
11
|
+
AbstractCore's own (`host_profile_v1`, `engines_status_v1`,
|
|
12
|
+
`model_catalog_v1`, `models_installed_v1`, `host_job_v1`).
|
|
13
|
+
- `models_engines_support()` reports whether the installed AbstractCore has
|
|
14
|
+
these modules. It never raises.
|
|
15
|
+
- `AbstractCoreTooOld` (a `NotImplementedError`) is raised when the installed
|
|
16
|
+
AbstractCore predates these modules. The message names the installed
|
|
17
|
+
version and the upgrade command.
|
|
18
|
+
- `HostActionRefused` carries an HTTP status and a structured body for
|
|
19
|
+
refusals: engine installs not allowed, unknown engine, an install already
|
|
20
|
+
running, a delete blocked by a loaded or shared model. Hosts no longer need
|
|
21
|
+
AbstractCore's exception types to tell refusals apart.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- The AbstractCore floor is now 2.14.0 in the base install and in the `apple`
|
|
25
|
+
and `gpu` extras.
|