AbstractRuntime 0.10.4__tar.gz → 0.10.5__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.10.4 → abstractruntime-0.10.5}/CHANGELOG.md +12 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/PKG-INFO +1 -1
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/api.md +1 -1
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/llms-full.txt +1 -1
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/pyproject.toml +1 -1
- abstractruntime-0.10.5/release-notes.md +9 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/llm_client.py +31 -35
- abstractruntime-0.10.5/tests/test_endpoint_profile_media_end_to_end.py +159 -0
- abstractruntime-0.10.4/release-notes.md +0 -15
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/.github/workflows/ci.yml +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/.github/workflows/release.yml +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/.gitignore +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/ACKNOWLEDGMENTS.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/CODE_OF_CONDUCT.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/CONTRIBUTING.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/LICENSE +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/ROADMAP.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/SECURITY.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/adr/0001_layered_coupling_with_abstractcore.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/adr/0002_execution_modes_local_remote_hybrid.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/adr/0003_provenance_tamper_evident_hash_chain.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/adr/0004_runtime_owns_run_scoped_media_execution_truth.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/adr/0005_runtime_owns_abstractcore_host_discovery_queries.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/adr/0006_runtime_owns_durable_abstractcore_bloc_prompt_cache.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/adr/0007_runtime_relays_core_owned_model_residency_truth.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/adr/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/architecture.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/artifacts.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/automations.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/001_runtime_kernel.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0030_runtime_host_facades_for_comms_telegram_and_tool_specs.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0032_runtime_durable_outbound_comms_truth.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0033_runtime_host_local_prompt_cache_export_import_surface.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0035_model_residency_provider_truth_for_local_http_clients.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0037_visualflow_generate_music_node_compiler_parity.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0039_runtime_music_structure_prompt_bool_contract.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/003_wait_primitives.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0040_task_agnostic_local_residency_listing.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0041_runtime_hardware_extras_avoid_nonpermissive_document_stacks.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0042_core_vision_upscale_and_parameter_surface.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0043_runtime_vision_adapter_and_batch_surface.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/004_scheduler_driver.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/005_abstractcore_integration.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/006_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/007_provenance_hash_chain.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/009_artifact_store.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/010_examples_and_composition.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/011_subworkflow_support.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/012_run_store_query_and_scheduler_support.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/013_effect_retries_and_idempotency.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/016_runtime_aware_parameters.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/019_runtime_host_facade_for_core_operator_surfaces.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/020_runtime_gateway_install_boundary.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/021_runtime_gateway_env_namespace_cleanup.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/022_model_residency_control_plane.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/023_truthful_local_media_residency_boundaries.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/024_runtime_owned_run_scoped_media_execution.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/026_runtime_host_discovery_facade_for_core_catalogs.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/027_runtime_durable_bloc_prompt_cache_facade.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/028_runtime_bloc_kv_lifecycle_and_pruning.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/029_runtime_music_generation_and_discovery_via_abstractcore.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0846_mlx_instance_scheduling_and_execution_controls.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/0847_automations_v1_controller_contracts_occurrences_triggers.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/001_integrations_abstractcore.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/001_runtime_kernel.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/002_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/0034_agent_runtime_convenience_constructor.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/003_provenance_ledger_chain.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/003_wait_resume_and_scheduler.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/004_effect_handlers_and_integrations.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/004_tests.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/005_docs_updates.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/005_examples_and_composition.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/006_ai_fingerprint_and_provenance.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/DEPRECATED_README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/abstractruntime_docs_final_02a7373b.plan.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/0070_standalone_wui_browser_session_security_contract.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/008_signatures_and_keys.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/014_remote_tool_worker_executor.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/017_limit_warnings_and_observability.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/018_workspace_access_policy_for_media_and_tools.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/0233_real_run_cancellation.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/025_runtime_retention_and_purge_contract.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/026_context_checkpoint_self_compression.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/027_quote_provenance_discipline.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/028_selective_artifact_rehydration.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/0845_session_prompt_cache_resume_and_purge_contract.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/0848_automations_v2_external_event_inbox_and_run_triggers.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_portability/0065_portable_process_and_lock_layer.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_portability/0066_portable_io_and_media_reader.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_portability/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0044_meta_analysis_record.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0045_crash_replay_harness_and_ordering_invariant.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0046_per_run_driver_exclusion.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0047_indexed_idempotency_lookup.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0048_durable_io_unification.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0049_llm_client_mechanical_split.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0050_control_sidecar_all_writers.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0051_runtime_owned_durable_event_mailbox.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0052_sync_store_event_loop_tripwire.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0053_bounded_run_vars_growth.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0054_runtime_health_counters.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0055_jsonl_store_honesty.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0064_prompt_cache_fingerprint_stability.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0067_durable_write_discipline.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/0068_hot_path_store_reads.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/0031_runtime_tool_spec_adapters_for_gateway_and_mcp.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/0036_local_media_residency_bridge_to_core_residency.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/0038_core_server_pool_residency_affinity.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/0069_document_renderer_professional_figures.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/runtime_systemic_reliability/0056_schema_version_and_quarantine_loading.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/runtime_systemic_reliability/0057_trust_boundary_stamp_registry.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/runtime_systemic_reliability/0058_terminal_run_archival_helper.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/runtime_systemic_reliability/0059_memory_span_handler_extraction.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/runtime_systemic_reliability/0060_visualflow_compiler_decomposition.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/runtime_systemic_reliability/0061_root_api_deprecation_machinery.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/runtime_systemic_reliability/0062_dependency_honesty_extras.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/runtime_systemic_reliability/0063_b3_envelope_lane_unification.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/proposed/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/email.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/entity-runtime.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/evidence.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/faq.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/getting-started.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/integrations/abstractcore.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/limits.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/manual_testing.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/mcp-worker.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/proposal.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/provenance.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/snapshots.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/tool-approval.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/tools-comms.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/troubleshooting.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/workflow-bundles.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/examples/01_hello_world.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/examples/02_ask_user.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/examples/03_wait_until.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/examples/04_multi_step.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/examples/05_persistence.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/examples/06_llm_integration.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/examples/07_react_agent.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/examples/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/llms.txt +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/mkdocs.yml +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/pytest.ini +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/scripts/backfill_diary_edges.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/scripts/generate_llms_full.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automation_queries.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/adapters.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/attention.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/bundle.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/bundles/automation-controller/flows/controller.json +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/bundles/automation-controller/manifest.json +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/commands.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/controller.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/ledger.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/models.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/automations/service.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/config.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/effect_cancellation.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/event_keys.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/health.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/live_deltas.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/models.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/policy.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/progress_channel.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/run_attribution.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/run_identity.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/run_lifecycle.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/runtime.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/spec.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/tool_scope.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/core/vars.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/documents/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/documents/charts.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/documents/docx.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/documents/pdf.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/email/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/email/actions.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/email/automations.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/email/binding.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/email/feeder.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/email/frame.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/email/inbox.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/evidence/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/evidence/recorder.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/history_bundle.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/act_only.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/chat.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/communities.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/diary.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/digest.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/entity_runtime.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/fingerprint.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/lease.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/life.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/memory_reader.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/night_voice.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/phase_graph.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/phase_spec.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/prelude.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/prompt_overlay.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/reflection.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/spec/entity_phases.vendored.json +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/substrate.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/tool_effects.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/tool_policy.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/tools.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/identity/visit_workflow.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/agora_tools.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/command_sandbox_host.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/comms_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/config_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/constants.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/data_registry_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/default_tools.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/discovery_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/discovery_queries.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/effect_handlers.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/email_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/embeddings_client.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/factory.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/host_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/local_helper_tools.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/logging.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/mcp_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/mcp_worker.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/media_subprocess.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/observability.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/output_specs.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/run_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/server_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/session_attachments.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/structured_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/summarizer.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/telegram_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/tool_effects.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/tool_executor.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/tool_inventory_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractcore/workspace_scoped_tools.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractmemory/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractmemory/brain_handlers.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractmemory/effect_handlers.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractmemory/identity_support.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/integrations/abstractmemory/seam_handlers.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/memory/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/memory/active_context.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/memory/active_memory.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/memory/compaction.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/memory/kg_packets.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/memory/memact_composer.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/memory/recall_levels.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/memory/token_budget.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/rendering/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/rendering/agent_trace_report.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/rendering/json_stringify.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/scheduler/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/scheduler/convenience.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/scheduler/multi_store.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/scheduler/registry.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/scheduler/scheduler.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/session_history.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/session_turns.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/artifacts.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/base.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/commands.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/in_memory.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/json_files.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/lease.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/ledger_chain.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/ledger_slim.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/observable.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/offloading.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/serialize.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/snapshots.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/sqlite.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/storage/steer_sidecar.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/triggers/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/triggers/email_received.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/triggers/manual.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/triggers/protocol.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/triggers/registry.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/triggers/schedule.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/turn_grounding.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/utils/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/utils/atomic_files.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/utils/file_filters.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/utils/workspace_paths.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/agent_adapter.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/context_adapter.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/control_adapter.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/effect_adapter.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/event_adapter.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/function_adapter.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/memact_adapter.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/subflow_adapter.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/adapters/variable_adapter.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/compiler.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/flow.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/agent_ids.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/builtins.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/code_executor.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/execution_metrics.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/executor.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/function_library.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/loop_back_check.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/loop_limit_lowering.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/models.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/multi_entry_lowering.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/pin_expressions.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/visualflow_compiler/visual/reroute_lowering.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/workflow_bundle/__init__.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/workflow_bundle/models.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/workflow_bundle/packer.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/workflow_bundle/reader.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/src/abstractruntime/workflow_bundle/registry.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/README.md +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/automation_harness.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/conftest.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/email_wp2_support.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/fixtures/schedule_v1_corpus.json +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/live_email/conftest.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/live_email/live_email_support.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/live_email/test_email_live_runtime.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_abstractcore_comms_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_abstractcore_discovery_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_abstractcore_host_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_abstractcore_run_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_abstractcore_server_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_abstractcore_structured_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_abstractcore_telegram_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_active_context_policy.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_active_index.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_active_memory.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_agora_agent_alias_identity.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_agora_tools_http.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_analyze_media_addressing_and_walling.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_answer_user_effect.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_artifacts.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_calendar_schedule.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_commands.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_controller.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_controller_recovery.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_definition.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_discussion_isolation.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_email_results.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_growing_context.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_index.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_next_fire.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_occurrence_input_resolver.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_occurrence_recovery.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_replay_read_only.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_retry.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_session_turns.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_status.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_automation_tool_approval.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_browser_probe_target_walling.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_budget_law_no_unrequested_caps.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_capability_default_reasoning.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_chat_summarizer_integration.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_code_node_imports.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_code_node_restricted_python.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_command_sandbox_host_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_command_store.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_compaction_helpers.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_compaction_summarizer_route.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_config_facade_models_engines.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_config_facade_voice_input_hint.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_control_adapter_while.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_controller_bundle_packaged.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_crash_ordering_inversions.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_create_if_absent.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_data_registry_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_default_tools_camera_gating.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_default_tools_comms_gating.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_default_tools_include_skim_files.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_default_tools_include_skim_folders.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_default_tools_include_skim_web.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_default_tools_search_files_executor.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_diary_capture.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_diary_write_rescue.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_directory_lease.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_disabled_toolsets_seam.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_discovery_survives_unbuildable_default.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_discovery_tts_unavailable_reason.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_discovery_voice_openai_api_key.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_discussion_session_anchor.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_document_markdown_tables.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_document_renderers_hr_quote.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_durable_toolsets.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_durable_write_discipline.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_e2e_tool_calls_idempotency_lmstudio.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_effect_cancellation.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_effect_issuance_idempotency.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_effect_payload_stays_json_serializable.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_election_consequence_teaching.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_email_binding_and_refiner.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_email_gate_fixes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_email_inbox_and_trigger.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_email_regate_fixes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_email_review_fixes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_email_self_trigger_loop.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_email_toolset_and_walls.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_emergence_experiment.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_emit_event_uses_wait_index.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_emit_event_without_workflow_registry.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_endpoint_profile_media_in_process.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_endpoint_profile_media_specs_keep_provider.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_endpoint_profile_route_context.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_awake_memory_fixes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_brain_effects.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_chat_driver.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_chat_tools_reflection.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_diary.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_execute_tool.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_fetch_url_tool.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_history_window.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_life_loop.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_memory_richness.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_phase_graph_conformance.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_react_visit_window.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_recent_memories.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_runtime.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_search_memory.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_sleep_bound_and_yield_attribution.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_substrate_resolution.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_visit_honesty.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_workspace_cap.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_entity_workspace_tools.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_event_wait_index.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_every_path_bearing_tool_is_walled.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_evidence_recorder.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_evidence_recorder_post_policy_envelope.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_execute_command_output_offload.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_execution_capability_discovery.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_explicit_eject_other_clients.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_factory_default_retry_policy.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_factory_timeouts_default_to_abstractcore_config.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_format_repair_nudge.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_fresh_install_no_provider.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_gateway_facades_c4899.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_git_read_only_refiner.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_hf_process_residency_merge.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_history_window_multimodal.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_hot_path_store_reads.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_indexed_idempotency_lookup.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_integration_abstractcore.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_integrations_abstractcore.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_json_file_run_store_children_index.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_json_run_cache_bound.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_json_store_scan_memo.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_jsonl_ledger_recovery.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_kg_learn_and_recall_contract.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_ledger_chain.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_ledger_record_slimming.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_ledger_subscription.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_live_token_deltas.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_media_artifact_refs.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_media_artifact_refs_persist_across_restart.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_media_uses_source_path_label.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_payload_shape_refusal.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_requires_prompt.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_response_schema_normalization.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_structured_output_fallback.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_text_phase_progress.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_truncation_retry_contract.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_use_context_appends_turn.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_call_verbatim_payload_capture.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_client_grounding_tail.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_client_media_artifacts.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_client_system_context.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_client_tool_call_parsing.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_retry_classification.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_llm_streaming_on_token.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_local_helper_tool_exposure.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_local_residency_host_sweep.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_local_runtime_timeout_kwarg_policy.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_max_iterations_ceiling.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_mcp_remote_tool_executor.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_mcp_runs_untrusted_and_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_mcp_worker_logging.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_mcp_worker_security.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_mcp_worker_stdio.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_media_artifact_resolution.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_media_capability_default_routing.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_media_only_requests_skip_text_client.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_media_subprocess.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memact_composer_from_kg_result.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_appraise_handler.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_communities.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_kg_assert_attributes_defaults.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_kg_packets.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_kg_predicate_aliasing.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_kg_query_packetization_restart.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_kg_query_recall_level_policy.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_kg_semantic_query_ranking.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_note_effect.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_query_effect.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_query_rich_filters.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_scope_and_rehydrate_effect.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_seam_handlers.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_seam_sqlite_durability.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_memory_tag_effect.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_mlx_generation_serialization.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_mlx_process_residency_merge.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_model_eject_cancel.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_model_residency_clean_switch.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_model_residency_control_plane.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_model_residency_lock_and_context_estimate.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_multi_store_scheduler.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_multimodal_abstractcore_integration.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_native_mlx_application_wiring.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_native_mlx_execution_controls_live.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_native_tool_channel.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_night_voice.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_no_default_provider_refusal_ux.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_offload_answer_chain_c4978.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_offloaded_node_traces_report_unknown_not_zero.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_offloading.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_packaging_extras.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_parallel_readonly_tool_execution.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_pause_resume.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_pdf_unicode_rendering.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_personal_cycle.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_phantom_attachment_index.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_phase_graph_artifact_control.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_phase_graph_obedience.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_phase_vocabulary_migration.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_pooled_client_strips_construction_cache_key.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_prompt_cache_export_import.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_prompt_cache_fingerprint_stability.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_prompt_cache_modules.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_prompt_cache_posture_inheritance.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_prompt_cache_thinking_and_prompt_only.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_prompt_overlay.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_provider_endpoint_profile_resolution.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_provider_pin_routing_isolation.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_queryable_run_store.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_r12_workspace_sandbox.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_read_file_fallback_to_session_attachments.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_read_idle_threading.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_readoption_experiment.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_real_integration.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_realize_election.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_recall_levels_policy.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_remote_client_cancel.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_remote_llm_client.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_remote_speculation_defaults.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_rendering_agent_trace_report.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_rendering_json_stringify.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_report_branding.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_resident_media_generation.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_resume_concurrent_same_wait.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_retry_idempotency.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_run_history_bundle.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_run_index_workspace_root.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_run_mutation_lock.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_run_scoped_tool_policy.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_run_tool_scope_ceiling.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_browser_session_boundary.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_config_max_output_tokens_fallback.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_default_provider_model_refresh.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_effect_invocation_trace.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_health_and_bounded_vars.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_install_boundary.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_llm_call_grounding_in_ledger.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_node_traces.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_start_seeds_tool_support.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_runtime_tick_step_gate.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_schedule_v1_corpus.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_schedule_v2_calendar.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_scheduler.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_send_email_refiner.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_send_email_self_default_policy.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_session_attachments_registry_and_open_tool.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_session_history.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_session_prompt_cache_attribution.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_session_prompt_cache_visibility.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_session_route_stamp.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_session_start_cost.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_shell_tool_exposure.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_snapshots.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_speculation_inheritance.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_speculation_reaches_provider_construction.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_sqlite_ledger_store.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_start_subworkflow_async_wait.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_start_subworkflow_inherit_context_merges_messages.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_start_subworkflow_workspace_inheritance.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_steer_sidecar.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_storage_deletion.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_structured_output_schema_enum.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_subworkflow.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_terminal_effect_completion.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_terminal_resume_appends_ledger_completion.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_thinking_inheritance.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tick_completion_includes_output_in_ledger.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_approval_executor.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_approval_resume_executes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_approval_wait_key_identity.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_calls_idempotency_keys.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_catalog.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_descriptor_registry.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_executor_argument_sanitization.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_executor_error_output_detection.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_executor_filename_alias.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_executor_kwarg_canonicalization.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_executor_read_file_aliases.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_executor_timeout.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_inventory_facade.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_invoke_effect.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_policy_and_mounts.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_tool_wait_allowlist_safety.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_topic_election_world_model.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_trace_context_propagation.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_trigger_registry.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_trigger_schedule_math.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_turn_grounding_byte_stability.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_turn_grounding_carriers_a3.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_vars_query_effect.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visit_ab_fixture.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visit_midturn_elections.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visit_midturn_resume.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visit_workflow.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_agent_output_context_includes_messages.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_agent_skills_block_passthrough.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_agent_tool_observations_persist_across_restart.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_agent_use_context_inherits_attachments.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_agent_use_context_persists_tool_observations.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_agent_use_context_persists_turn.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_entity_memory_nodes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_flow_end_effect_only_persistence.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_llm_call_partial_override.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_llm_call_schema_ref_resolution.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_loop_back_out_of_body.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_loop_limit_and_list_nodes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_loop_limit_on_wire.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_memact_compose_node.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_memory_kg_query_outputs_propagate.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_memory_kg_resolve_outputs_propagate.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_multi_entry_loop_overrides.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_reroute_lowering.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_set_vars_pins.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_unknown_node_type_refuses.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visual_wait_event_deadline_passthrough.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_add_message_builtin.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_add_message_node_appends_to_active_context.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_agora_react_agent.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_call_tool_node.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_capability_routes_and_thinking.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_compiler_basic.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_context_and_builder_nodes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_continue_on_error.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_edit_json_schema_node.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_event_inbox_react_agent.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_file_nodes_workspace.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_function_library.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_get_element_node.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_get_random_element_node.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_get_var_node.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_has_tools_builtin.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_llm_call_context_attachments_map_to_media.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_llm_call_multimodal_output.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_make_object_node.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_media_nodes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_memory_effect_nodes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_memory_source_pins.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_pin_expressions.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_prompt_only.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_random_nodes.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_schema_enum_switch.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_string_contains_replace.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_visualflow_tool_parameters_node.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_voice_openai_api_key_path.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_voice_stream_is_not_a_wait.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_w4_feelings_lens.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_wait_event_deadline.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_wait_event_prompt_metadata.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_wait_until_streak.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_wait_until_utc_normalization.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workflow_bundle_registry.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workspace_builtin_deny.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workspace_context_allowed_workspaces.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workspace_policy_absolute_reanchor.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workspace_policy_allowlist_mode.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workspace_policy_mount_virtual_paths.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workspace_policy_tool_calls_persist_across_restart.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workspace_prompt_context.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workspace_read_only.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_workspace_writable_paths.py +0 -0
- {abstractruntime-0.10.4 → abstractruntime-0.10.5}/tests/test_write_chart.py +0 -0
|
@@ -5,6 +5,18 @@ All notable changes to AbstractRuntime will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.10.5] - 2026-10-18
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- The pooled client wires every client it builds in one place (`_adopt_client`): the residency core, the
|
|
13
|
+
Core execution context, the host's endpoint-profile resolver and the pool-wide token callback reach the
|
|
14
|
+
text clients, the per-call override clients and the media host through the same path, and a setting
|
|
15
|
+
applied later reaches all of them through `_owned_clients`. No behaviour change. Tests:
|
|
16
|
+
`tests/test_endpoint_profile_media_end_to_end.py` (an image spec on an `endpoint:<id>` profile reaches
|
|
17
|
+
that endpoint through the `LLM_CALL` handler, the pooled client and AbstractCore's capability host, with
|
|
18
|
+
and without a text provider on the call).
|
|
19
|
+
|
|
8
20
|
## [0.10.4] - 2026-10-18
|
|
9
21
|
|
|
10
22
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: AbstractRuntime
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.5
|
|
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
|
|
@@ -356,7 +356,7 @@ Multimodal support:
|
|
|
356
356
|
- media-only normalized results expose `runtime_provider` / `runtime_model` separately from `media_provider` / `media_model`
|
|
357
357
|
- local image/video generation runs in a one-shot subprocess (`execution_mode="local_one_shot_subprocess"`) unless every requested media model is resident (explicitly loaded with `load_model_residency`), in which case it runs in-process on the loaded pipeline (`execution_mode="resident_in_process"`, `resident_load_ids`)
|
|
358
358
|
- a media spec whose `provider` is an endpoint profile (`endpoint:<id>`) never uses the one-shot subprocess: it is an HTTP call to that endpoint, and the host's endpoint-profile resolver (`set_provider_endpoint_profile_resolver`) exists only in this process
|
|
359
|
-
- the `LLM_CALL` handler resolves only the call's own `provider` (`endpoint:<id>` on the effect payload) into Core routing params (`_provider`, `base_url`, `provider_api_key`); an endpoint profile named on an output spec stays on the spec, and the media plugin resolves it through the resolver the host attached to the client.
|
|
359
|
+
- the `LLM_CALL` handler resolves only the call's own `provider` (`endpoint:<id>` on the effect payload) into Core routing params (`_provider`, `base_url`, `provider_api_key`); an endpoint profile named on an output spec stays on the spec, and the media plugin resolves it through the resolver the host attached to the client. Every client the pooled client builds carries that resolver: the text clients, the per-call override clients and the media host that serves media-only calls
|
|
360
360
|
- optional local media residency failures complete with `status_hint="warning"` and `degraded=true`; local media warmup that no capability plugin can serve (`image_generation`, `image_upscale`, `video_generation`, `text_to_video`, `image_to_video`, `tts`, `stt`, `music_generation`) reports `requires_long_lived_server=true`, and image/video tasks also report `execution_mode="local_one_shot_subprocess"`
|
|
361
361
|
- Gateway/hosts remain responsible for explicit Core server URLs, Core server auth headers, provider/model defaults, selected local-inference profiles, and translation of Gateway-owned env/config into explicit Runtime inputs; Runtime persists only JSON-safe routing metadata and artifact refs
|
|
362
362
|
|
|
@@ -1226,7 +1226,7 @@ Multimodal support:
|
|
|
1226
1226
|
- media-only normalized results expose `runtime_provider` / `runtime_model` separately from `media_provider` / `media_model`
|
|
1227
1227
|
- local image/video generation runs in a one-shot subprocess (`execution_mode="local_one_shot_subprocess"`) unless every requested media model is resident (explicitly loaded with `load_model_residency`), in which case it runs in-process on the loaded pipeline (`execution_mode="resident_in_process"`, `resident_load_ids`)
|
|
1228
1228
|
- a media spec whose `provider` is an endpoint profile (`endpoint:<id>`) never uses the one-shot subprocess: it is an HTTP call to that endpoint, and the host's endpoint-profile resolver (`set_provider_endpoint_profile_resolver`) exists only in this process
|
|
1229
|
-
- the `LLM_CALL` handler resolves only the call's own `provider` (`endpoint:<id>` on the effect payload) into Core routing params (`_provider`, `base_url`, `provider_api_key`); an endpoint profile named on an output spec stays on the spec, and the media plugin resolves it through the resolver the host attached to the client.
|
|
1229
|
+
- the `LLM_CALL` handler resolves only the call's own `provider` (`endpoint:<id>` on the effect payload) into Core routing params (`_provider`, `base_url`, `provider_api_key`); an endpoint profile named on an output spec stays on the spec, and the media plugin resolves it through the resolver the host attached to the client. Every client the pooled client builds carries that resolver: the text clients, the per-call override clients and the media host that serves media-only calls
|
|
1230
1230
|
- optional local media residency failures complete with `status_hint="warning"` and `degraded=true`; local media warmup that no capability plugin can serve (`image_generation`, `image_upscale`, `video_generation`, `text_to_video`, `image_to_video`, `tts`, `stt`, `music_generation`) reports `requires_long_lived_server=true`, and image/video tasks also report `execution_mode="local_one_shot_subprocess"`
|
|
1231
1231
|
- Gateway/hosts remain responsible for explicit Core server URLs, Core server auth headers, provider/model defaults, selected local-inference profiles, and translation of Gateway-owned env/config into explicit Runtime inputs; Runtime persists only JSON-safe routing metadata and artifact refs
|
|
1232
1232
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
### Changed
|
|
2
|
+
|
|
3
|
+
- The pooled client wires every client it builds in one place (`_adopt_client`): the residency core, the
|
|
4
|
+
Core execution context, the host's endpoint-profile resolver and the pool-wide token callback reach the
|
|
5
|
+
text clients, the per-call override clients and the media host through the same path, and a setting
|
|
6
|
+
applied later reaches all of them through `_owned_clients`. No behaviour change. Tests:
|
|
7
|
+
`tests/test_endpoint_profile_media_end_to_end.py` (an image spec on an `endpoint:<id>` profile reaches
|
|
8
|
+
that endpoint through the `LLM_CALL` handler, the pooled client and AbstractCore's capability host, with
|
|
9
|
+
and without a text provider on the call).
|
|
@@ -10635,15 +10635,29 @@ class MultiLocalAbstractCoreLLMClient:
|
|
|
10635
10635
|
if last_exc is not None:
|
|
10636
10636
|
raise last_exc
|
|
10637
10637
|
raise TypeError("Failed to construct LocalAbstractCoreLLMClient")
|
|
10638
|
-
|
|
10639
|
-
|
|
10638
|
+
return self._adopt_client(client)
|
|
10639
|
+
|
|
10640
|
+
def _adopt_client(self, client: LocalAbstractCoreLLMClient) -> LocalAbstractCoreLLMClient:
|
|
10641
|
+
"""Wire a client this pool just built -- the ONE place for everything a
|
|
10642
|
+
client inherits from its pool, so a client built on a new path cannot
|
|
10643
|
+
miss part of it (the media host missed the resolver in 0.10.3):
|
|
10644
|
+
|
|
10645
|
+
- the residency core: media generation on the client finds the models
|
|
10646
|
+
explicitly loaded into THIS pool (`_resident_capability_core_for`);
|
|
10647
|
+
- the Core execution context (config store, capability defaults);
|
|
10648
|
+
- the host's endpoint-profile resolver: the media plugins resolve an
|
|
10649
|
+
`endpoint:<id>` spec through the resolver on their owner, this client;
|
|
10650
|
+
- the pool-wide token callback.
|
|
10651
|
+
|
|
10652
|
+
A setting that arrives after construction reaches every client the
|
|
10653
|
+
pool owns through its setter (`_owned_clients`)."""
|
|
10640
10654
|
client._capability_residency_parent = weakref.ref(self)
|
|
10641
|
-
|
|
10655
|
+
explicit = getattr(self, "_capability_defaults_explicit", bool(self._capability_defaults))
|
|
10656
|
+
if self._core_config_file or explicit:
|
|
10642
10657
|
_attach_core_execution_context_to_client(
|
|
10643
10658
|
client,
|
|
10644
10659
|
core_config_file=self._core_config_file,
|
|
10645
|
-
capability_defaults=self._capability_defaults
|
|
10646
|
-
if getattr(self, "_capability_defaults_explicit", bool(self._capability_defaults)) else None,
|
|
10660
|
+
capability_defaults=self._capability_defaults if explicit else None,
|
|
10647
10661
|
)
|
|
10648
10662
|
resolver = getattr(self, "_provider_endpoint_profile_resolver", None)
|
|
10649
10663
|
if callable(resolver):
|
|
@@ -10653,19 +10667,21 @@ class MultiLocalAbstractCoreLLMClient:
|
|
|
10653
10667
|
client.set_on_token(pool_on_token)
|
|
10654
10668
|
return client
|
|
10655
10669
|
|
|
10670
|
+
def _owned_clients(self) -> List[Any]:
|
|
10671
|
+
"""Every client this pool built and still serves: the pooled text
|
|
10672
|
+
clients (`_pooled_clients`) and the media host. A pool-wide setting
|
|
10673
|
+
applied after construction goes to all of them."""
|
|
10674
|
+
media_host = self.__dict__.get("_media_host")
|
|
10675
|
+
return [*self._pooled_clients(), *([media_host] if media_host is not None else [])]
|
|
10676
|
+
|
|
10656
10677
|
def set_on_token(self, callback: Optional[Any]) -> None:
|
|
10657
10678
|
"""Pool-wide token callback (code seat c1009 ask 3): registers on every
|
|
10658
10679
|
pooled client — existing AND future (per-request provider/model
|
|
10659
10680
|
overrides create clients lazily; without the fan-out they would
|
|
10660
10681
|
silently not stream). Same contract as the per-client setter."""
|
|
10661
10682
|
self._pool_on_token = callback if callable(callback) else None
|
|
10662
|
-
for client in
|
|
10683
|
+
for client in self._owned_clients():
|
|
10663
10684
|
client.set_on_token(self._pool_on_token)
|
|
10664
|
-
for client in list(getattr(self, "_override_clients", {}).values()):
|
|
10665
|
-
client.set_on_token(self._pool_on_token)
|
|
10666
|
-
default_client = getattr(self, "_default_client", None)
|
|
10667
|
-
if default_client is not None:
|
|
10668
|
-
default_client.set_on_token(self._pool_on_token)
|
|
10669
10685
|
|
|
10670
10686
|
def _get_client(
|
|
10671
10687
|
self,
|
|
@@ -10762,20 +10778,8 @@ class MultiLocalAbstractCoreLLMClient:
|
|
|
10762
10778
|
capability_defaults=self._capability_defaults if explicit else None,
|
|
10763
10779
|
llm_factory=create_capability_host,
|
|
10764
10780
|
)
|
|
10765
|
-
|
|
10766
|
-
|
|
10767
|
-
_attach_core_execution_context_to_client(
|
|
10768
|
-
client,
|
|
10769
|
-
core_config_file=self._core_config_file,
|
|
10770
|
-
capability_defaults=self._capability_defaults if explicit else None,
|
|
10771
|
-
)
|
|
10772
|
-
# A media spec naming an `endpoint:<id>` provider is resolved by the
|
|
10773
|
-
# media plugin through the resolver on ITS owner -- this client.
|
|
10774
|
-
resolver = getattr(self, "_provider_endpoint_profile_resolver", None)
|
|
10775
|
-
if resolver is not None:
|
|
10776
|
-
_attach_provider_endpoint_profile_resolver_to_client(client, resolver)
|
|
10777
|
-
self._media_host = client
|
|
10778
|
-
return client
|
|
10781
|
+
self._media_host = self._adopt_client(client)
|
|
10782
|
+
return self._media_host
|
|
10779
10783
|
|
|
10780
10784
|
@contextmanager
|
|
10781
10785
|
def _building_claim(self, key: Tuple[str, str]):
|
|
@@ -10842,17 +10846,9 @@ class MultiLocalAbstractCoreLLMClient:
|
|
|
10842
10846
|
def set_provider_endpoint_profile_resolver(self, resolver: Any) -> None:
|
|
10843
10847
|
self._provider_endpoint_profile_resolver = resolver
|
|
10844
10848
|
_attach_provider_endpoint_profile_resolver_to_client(self, resolver)
|
|
10845
|
-
for client in
|
|
10846
|
-
_attach_provider_endpoint_profile_resolver_to_client(client, resolver)
|
|
10847
|
-
for client in list(getattr(self, "_override_clients", {}).values()):
|
|
10849
|
+
for client in self._owned_clients():
|
|
10848
10850
|
_attach_provider_endpoint_profile_resolver_to_client(client, resolver)
|
|
10849
|
-
|
|
10850
|
-
if default_client is not None:
|
|
10851
|
-
_attach_provider_endpoint_profile_resolver_to_client(default_client, resolver)
|
|
10852
|
-
media_host = self.__dict__.get("_media_host")
|
|
10853
|
-
if media_host is not None:
|
|
10854
|
-
_attach_provider_endpoint_profile_resolver_to_client(media_host, resolver)
|
|
10855
|
-
self._llm = getattr(default_client, "_llm", None)
|
|
10851
|
+
self._llm = getattr(getattr(self, "_default_client", None), "_llm", None)
|
|
10856
10852
|
|
|
10857
10853
|
def get_provider_instance(self, *, provider: str, model: str) -> Any:
|
|
10858
10854
|
"""Return the underlying AbstractCore provider instance for (provider, model)."""
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"""A media spec on an `endpoint:<id>` profile reaches that endpoint, end to end.
|
|
2
|
+
|
|
3
|
+
The LLM_CALL handler, the pooled client, AbstractCore's capability host and
|
|
4
|
+
the vision plugin's owner-resolver contract are real; only the vision backend
|
|
5
|
+
is a fake that records which endpoint it was given. Both production paths:
|
|
6
|
+
the media-only call without a text provider (the web console sandbox) and
|
|
7
|
+
the call that names its text provider (the Assistant orchestrator).
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import base64
|
|
13
|
+
import socket
|
|
14
|
+
import subprocess
|
|
15
|
+
from typing import Any, Dict, List, Optional
|
|
16
|
+
|
|
17
|
+
import pytest
|
|
18
|
+
|
|
19
|
+
from abstractruntime.core.models import Effect, EffectType, RunState
|
|
20
|
+
from abstractruntime.integrations.abstractcore.effect_handlers import make_llm_call_handler
|
|
21
|
+
from abstractruntime.integrations.abstractcore.llm_client import MultiLocalAbstractCoreLLMClient
|
|
22
|
+
from abstractruntime.storage.artifacts import InMemoryArtifactStore
|
|
23
|
+
|
|
24
|
+
PNG = base64.b64decode(
|
|
25
|
+
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/l9sAAAAASUVORK5CYII="
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _resolver(key: str):
|
|
30
|
+
def resolve(provider_id: str) -> Optional[Dict[str, Any]]:
|
|
31
|
+
if provider_id != "endpoint:relay":
|
|
32
|
+
return None
|
|
33
|
+
return {
|
|
34
|
+
"id": "relay",
|
|
35
|
+
"virtual_provider": "endpoint:relay",
|
|
36
|
+
"provider": "openai-compatible",
|
|
37
|
+
"base_url": "http://127.0.0.1:18921/v1",
|
|
38
|
+
"api_key": key,
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return resolve
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
@pytest.fixture
|
|
45
|
+
def pool(tmp_path, monkeypatch):
|
|
46
|
+
def forbidden(*args, **kwargs):
|
|
47
|
+
raise AssertionError("an endpoint-profile media spec never opens a socket or spawns the media subprocess")
|
|
48
|
+
|
|
49
|
+
monkeypatch.setattr(socket.socket, "connect", forbidden)
|
|
50
|
+
monkeypatch.setattr(subprocess, "Popen", forbidden)
|
|
51
|
+
monkeypatch.setenv("ABSTRACTRUNTIME_LOCAL_IMAGE_SUBPROCESS", "1")
|
|
52
|
+
from abstractcore.capabilities.registry import CapabilityRegistry
|
|
53
|
+
from abstractcore.config import manager
|
|
54
|
+
|
|
55
|
+
config_file = str(tmp_path / "core.json")
|
|
56
|
+
monkeypatch.setattr(manager, "_config_manager", manager.ConfigurationManager(config_file=config_file, apply_env=False))
|
|
57
|
+
calls: List[tuple[str, str, str]] = []
|
|
58
|
+
|
|
59
|
+
class RecordingVision:
|
|
60
|
+
backend_id = "test-recording-vision"
|
|
61
|
+
|
|
62
|
+
def __init__(self, owner: Any) -> None:
|
|
63
|
+
self.owner = owner
|
|
64
|
+
|
|
65
|
+
def t2i(self, prompt: str, **kwargs: Any) -> bytes:
|
|
66
|
+
# The vision plugin's contract: `endpoint:<id>` resolves through the
|
|
67
|
+
# resolver on the OWNING Core provider (the media host's), never
|
|
68
|
+
# through the Core config file (a gateway profile has no row there).
|
|
69
|
+
resolved = self.owner.resolve_provider_endpoint_profile(kwargs["provider"])
|
|
70
|
+
calls.append((kwargs["model"], resolved["base_url"], resolved["api_key"]))
|
|
71
|
+
return PNG
|
|
72
|
+
|
|
73
|
+
monkeypatch.setattr(
|
|
74
|
+
CapabilityRegistry,
|
|
75
|
+
"_ensure_plugins_loaded",
|
|
76
|
+
lambda registry: registry.register_vision_backend(
|
|
77
|
+
backend_id=RecordingVision.backend_id, factory=RecordingVision, priority=1000
|
|
78
|
+
),
|
|
79
|
+
)
|
|
80
|
+
store = InMemoryArtifactStore()
|
|
81
|
+
client = MultiLocalAbstractCoreLLMClient(
|
|
82
|
+
provider="lmstudio", model="local-model", artifact_store=store, core_config_file=config_file
|
|
83
|
+
)
|
|
84
|
+
return client, store, calls
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def _image_effect(*, provider: Optional[str] = None) -> Effect:
|
|
88
|
+
payload: Dict[str, Any] = {
|
|
89
|
+
"prompt": "a red circle",
|
|
90
|
+
"output": {
|
|
91
|
+
"modality": "image",
|
|
92
|
+
"task": "image_generation",
|
|
93
|
+
"format": "png",
|
|
94
|
+
"provider": "endpoint:relay",
|
|
95
|
+
"model": "gpt-image-2",
|
|
96
|
+
},
|
|
97
|
+
}
|
|
98
|
+
if provider:
|
|
99
|
+
payload["provider"] = provider
|
|
100
|
+
payload["model"] = "local-model"
|
|
101
|
+
return Effect(type=EffectType.LLM_CALL, payload=payload, result_key="llm")
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def _run() -> RunState:
|
|
105
|
+
run = RunState.new(workflow_id="wf", entry_node="node-1", vars={})
|
|
106
|
+
run.current_node = "node-1"
|
|
107
|
+
return run
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
@pytest.mark.parametrize("call_provider", [None, "lmstudio"], ids=["sandbox-media-only", "orchestrator-text-provider"])
|
|
111
|
+
def test_llm_call_image_on_an_endpoint_profile_reaches_it(pool, call_provider) -> None:
|
|
112
|
+
client, store, calls = pool
|
|
113
|
+
client.set_provider_endpoint_profile_resolver(_resolver("relay-key"))
|
|
114
|
+
handler = make_llm_call_handler(llm=client, artifact_store=store)
|
|
115
|
+
|
|
116
|
+
outcome = handler(_run(), _image_effect(provider=call_provider), None)
|
|
117
|
+
|
|
118
|
+
assert outcome.status == "completed", outcome.error
|
|
119
|
+
assert calls == [("gpt-image-2", "http://127.0.0.1:18921/v1", "relay-key")]
|
|
120
|
+
image = outcome.result["outputs"]["image"][0]
|
|
121
|
+
assert store.load(image["artifact_ref"]["$artifact"]).content == PNG
|
|
122
|
+
assert "relay-key" not in str(outcome.result)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def test_resolver_set_after_the_media_host_exists_and_kept_across_rebuilds(pool) -> None:
|
|
126
|
+
client, _store, calls = pool
|
|
127
|
+
media_host = client._media_host_client()
|
|
128
|
+
client.set_provider_endpoint_profile_resolver(_resolver("first-key"))
|
|
129
|
+
handler = make_llm_call_handler(llm=client, artifact_store=_store)
|
|
130
|
+
|
|
131
|
+
assert handler(_run(), _image_effect(), None).status == "completed"
|
|
132
|
+
assert calls[-1] == ("gpt-image-2", "http://127.0.0.1:18921/v1", "first-key")
|
|
133
|
+
assert client._media_host_client() is media_host
|
|
134
|
+
|
|
135
|
+
# A profile refresh rotates the resolver on the host that already exists.
|
|
136
|
+
client.set_provider_endpoint_profile_resolver(_resolver("rotated-key"))
|
|
137
|
+
assert handler(_run(), _image_effect(), None).status == "completed"
|
|
138
|
+
assert calls[-1][2] == "rotated-key"
|
|
139
|
+
|
|
140
|
+
# Changing the capability routes rebuilds the media host; it is wired like any pooled client.
|
|
141
|
+
assert client.set_capability_defaults({"output.image": {"provider": "endpoint:relay", "model": "gpt-image-2"}})
|
|
142
|
+
assert client._media_host_client() is not media_host
|
|
143
|
+
assert handler(_run(), _image_effect(), None).status == "completed"
|
|
144
|
+
assert calls[-1][2] == "rotated-key"
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def test_pool_wide_settings_reach_every_owned_client(pool) -> None:
|
|
148
|
+
client, _store, _calls = pool
|
|
149
|
+
media_host = client._media_host_client()
|
|
150
|
+
assert media_host in client._owned_clients()
|
|
151
|
+
|
|
152
|
+
on_token = lambda delta, meta: None # noqa: E731
|
|
153
|
+
client.set_on_token(on_token)
|
|
154
|
+
assert media_host._on_token is on_token
|
|
155
|
+
|
|
156
|
+
resolver = _resolver("key")
|
|
157
|
+
client.set_provider_endpoint_profile_resolver(resolver)
|
|
158
|
+
assert media_host.resolve_provider_endpoint_profile is resolver
|
|
159
|
+
assert media_host._llm.resolve_provider_endpoint_profile is resolver
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
### Fixed
|
|
2
|
-
|
|
3
|
-
- An image, video or voice spec whose provider is an endpoint profile (`endpoint:<id>`) keeps that provider
|
|
4
|
-
all the way to the media plugin. The `LLM_CALL` handler resolved the first output spec's endpoint as if it
|
|
5
|
-
were the call's text provider: it rewrote the spec to the bare provider family and put the endpoint's URL
|
|
6
|
-
and key into text-client routing params that the media path never reads, so an image generation routed to
|
|
7
|
-
a gateway endpoint profile (the web console's sandbox, an image route set to an OpenAI-compatible relay
|
|
8
|
-
serving `gpt-image-2`) reached AbstractVision as a keyless `openai-compatible` request with no base URL
|
|
9
|
-
and failed with "Missing vision_base_url / OPENAI_BASE_URL" -- in the one-shot media subprocess, since
|
|
10
|
-
the spec no longer said `endpoint:`. Only the call's own `provider` (`_provider`) is resolved now; the
|
|
11
|
-
spec's endpoint is resolved by the media plugin through the host's resolver, in process. The pooled
|
|
12
|
-
client's media host (the client every media-only call runs on) now carries the host's endpoint-profile
|
|
13
|
-
resolver, whether it is built before or after `set_provider_endpoint_profile_resolver`. Affects every
|
|
14
|
-
host that attaches an endpoint-profile resolver (AbstractGateway). Tests:
|
|
15
|
-
`tests/test_endpoint_profile_media_specs_keep_provider.py`.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/001_runtime_kernel.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/003_wait_primitives.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/004_scheduler_driver.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/006_snapshots_bookmarks.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/009_artifact_store.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/completed/011_subworkflow_support.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/001_runtime_kernel.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/002_snapshots_bookmarks.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/005_docs_updates.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/deprecated/DEPRECATED_README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/008_signatures_and_keys.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/0233_real_run_cancellation.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.10.4 → abstractruntime-0.10.5}/docs/backlog/planned/runtime_portability/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|