AbstractRuntime 0.7.1__tar.gz → 0.7.2__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.7.1 → abstractruntime-0.7.2}/ACKNOWLEDGMENTS.md +1 -1
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/CHANGELOG.md +27 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/PKG-INFO +9 -9
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/README.md +4 -4
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/api.md +1 -1
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/architecture.md +2 -2
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/troubleshooting.md +1 -1
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/llms-full.txt +9 -9
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/llms.txt +2 -2
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/pyproject.toml +8 -7
- abstractruntime-0.7.2/release-notes.md +24 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/discovery_queries.py +22 -3
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/mcp_worker.py +2 -1
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_discovery_facade.py +42 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_discovery_tts_unavailable_reason.py +1 -1
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_packaging_extras.py +39 -10
- abstractruntime-0.7.1/release-notes.md +0 -14
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/.github/workflows/ci.yml +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/.github/workflows/release.yml +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/.gitignore +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/CODE_OF_CONDUCT.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/CONTRIBUTING.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/LICENSE +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/ROADMAP.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/SECURITY.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0001_layered_coupling_with_abstractcore.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0002_execution_modes_local_remote_hybrid.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0003_provenance_tamper_evident_hash_chain.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0004_runtime_owns_run_scoped_media_execution_truth.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0005_runtime_owns_abstractcore_host_discovery_queries.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0006_runtime_owns_durable_abstractcore_bloc_prompt_cache.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0007_runtime_relays_core_owned_model_residency_truth.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/artifacts.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/automations.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/001_runtime_kernel.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0030_runtime_host_facades_for_comms_telegram_and_tool_specs.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0032_runtime_durable_outbound_comms_truth.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0033_runtime_host_local_prompt_cache_export_import_surface.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0035_model_residency_provider_truth_for_local_http_clients.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0037_visualflow_generate_music_node_compiler_parity.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0039_runtime_music_structure_prompt_bool_contract.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/003_wait_primitives.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0040_task_agnostic_local_residency_listing.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0041_runtime_hardware_extras_avoid_nonpermissive_document_stacks.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0042_core_vision_upscale_and_parameter_surface.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0043_runtime_vision_adapter_and_batch_surface.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/004_scheduler_driver.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/005_abstractcore_integration.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/006_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/007_provenance_hash_chain.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/009_artifact_store.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/010_examples_and_composition.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/011_subworkflow_support.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/012_run_store_query_and_scheduler_support.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/013_effect_retries_and_idempotency.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/016_runtime_aware_parameters.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/019_runtime_host_facade_for_core_operator_surfaces.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/020_runtime_gateway_install_boundary.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/021_runtime_gateway_env_namespace_cleanup.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/022_model_residency_control_plane.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/023_truthful_local_media_residency_boundaries.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/024_runtime_owned_run_scoped_media_execution.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/026_runtime_host_discovery_facade_for_core_catalogs.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/027_runtime_durable_bloc_prompt_cache_facade.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/028_runtime_bloc_kv_lifecycle_and_pruning.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/029_runtime_music_generation_and_discovery_via_abstractcore.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0846_mlx_instance_scheduling_and_execution_controls.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0847_automations_v1_controller_contracts_occurrences_triggers.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/001_integrations_abstractcore.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/001_runtime_kernel.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/002_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/0034_agent_runtime_convenience_constructor.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/003_provenance_ledger_chain.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/003_wait_resume_and_scheduler.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/004_effect_handlers_and_integrations.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/004_tests.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/005_docs_updates.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/005_examples_and_composition.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/006_ai_fingerprint_and_provenance.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/DEPRECATED_README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/abstractruntime_docs_final_02a7373b.plan.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/0070_standalone_wui_browser_session_security_contract.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/008_signatures_and_keys.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/014_remote_tool_worker_executor.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/017_limit_warnings_and_observability.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/018_workspace_access_policy_for_media_and_tools.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/0233_real_run_cancellation.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/025_runtime_retention_and_purge_contract.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/026_context_checkpoint_self_compression.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/027_quote_provenance_discipline.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/028_selective_artifact_rehydration.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/0845_session_prompt_cache_resume_and_purge_contract.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/0848_automations_v2_external_event_inbox_and_run_triggers.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_portability/0065_portable_process_and_lock_layer.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_portability/0066_portable_io_and_media_reader.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_portability/README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0044_meta_analysis_record.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0045_crash_replay_harness_and_ordering_invariant.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0046_per_run_driver_exclusion.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0047_indexed_idempotency_lookup.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0048_durable_io_unification.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0049_llm_client_mechanical_split.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0050_control_sidecar_all_writers.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0051_runtime_owned_durable_event_mailbox.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0052_sync_store_event_loop_tripwire.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0053_bounded_run_vars_growth.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0054_runtime_health_counters.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0055_jsonl_store_honesty.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0064_prompt_cache_fingerprint_stability.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0067_durable_write_discipline.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0068_hot_path_store_reads.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/0031_runtime_tool_spec_adapters_for_gateway_and_mcp.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/0036_local_media_residency_bridge_to_core_residency.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/0038_core_server_pool_residency_affinity.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/0069_document_renderer_professional_figures.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0056_schema_version_and_quarantine_loading.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0057_trust_boundary_stamp_registry.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0058_terminal_run_archival_helper.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0059_memory_span_handler_extraction.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0060_visualflow_compiler_decomposition.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0061_root_api_deprecation_machinery.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0062_dependency_honesty_extras.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0063_b3_envelope_lane_unification.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/entity-runtime.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/evidence.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/faq.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/getting-started.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/integrations/abstractcore.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/limits.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/manual_testing.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/mcp-worker.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/proposal.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/provenance.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/snapshots.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/tool-approval.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/tools-comms.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/workflow-bundles.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/emails.config.example.yaml +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/01_hello_world.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/02_ask_user.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/03_wait_until.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/04_multi_step.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/05_persistence.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/06_llm_integration.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/07_react_agent.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/mkdocs.yml +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/pytest.ini +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/scripts/backfill_diary_edges.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/scripts/generate_llms_full.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automation_queries.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/adapters.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/attention.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/bundle.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/bundles/automation-controller/flows/controller.json +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/bundles/automation-controller/manifest.json +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/commands.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/controller.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/ledger.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/models.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/service.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/config.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/effect_cancellation.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/event_keys.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/health.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/live_deltas.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/models.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/policy.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/progress_channel.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/run_attribution.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/run_identity.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/run_lifecycle.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/runtime.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/spec.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/tool_scope.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/vars.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/documents/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/documents/charts.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/documents/docx.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/documents/pdf.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/evidence/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/evidence/recorder.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/history_bundle.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/act_only.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/chat.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/communities.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/diary.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/digest.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/entity_runtime.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/fingerprint.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/lease.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/life.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/memory_reader.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/night_voice.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/phase_graph.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/phase_spec.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/prelude.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/prompt_overlay.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/reflection.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/spec/entity_phases.vendored.json +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/substrate.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/tool_effects.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/tool_policy.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/tools.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/visit_workflow.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/agora_tools.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/comms_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/config_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/constants.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/data_registry_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/default_tools.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/discovery_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/effect_handlers.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/embeddings_client.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/factory.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/host_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/llm_client.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/local_helper_tools.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/logging.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/media_subprocess.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/observability.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/output_specs.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/run_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/session_attachments.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/summarizer.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/telegram_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/tool_effects.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/tool_executor.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/tool_inventory_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/workspace_scoped_tools.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/brain_handlers.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/effect_handlers.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/identity_support.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/seam_handlers.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/active_context.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/active_memory.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/compaction.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/kg_packets.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/memact_composer.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/recall_levels.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/token_budget.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/rendering/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/rendering/agent_trace_report.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/rendering/json_stringify.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/convenience.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/multi_store.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/registry.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/scheduler.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/session_history.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/session_turns.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/artifacts.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/base.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/commands.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/in_memory.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/json_files.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/lease.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/ledger_chain.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/ledger_slim.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/observable.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/offloading.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/serialize.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/snapshots.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/sqlite.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/steer_sidecar.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/manual.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/protocol.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/registry.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/schedule.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/turn_grounding.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/utils/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/utils/atomic_files.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/utils/file_filters.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/utils/workspace_paths.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/agent_adapter.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/context_adapter.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/control_adapter.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/effect_adapter.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/event_adapter.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/function_adapter.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/memact_adapter.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/subflow_adapter.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/variable_adapter.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/compiler.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/flow.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/agent_ids.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/builtins.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/code_executor.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/execution_metrics.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/executor.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/function_library.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/models.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/multi_entry_lowering.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/pin_expressions.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/__init__.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/models.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/packer.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/reader.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/registry.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/README.md +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/automation_harness.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/conftest.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_comms_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_host_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_run_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_telegram_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_active_context_policy.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_active_memory.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_agora_agent_alias_identity.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_agora_tools_http.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_analyze_media_addressing_and_walling.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_answer_user_effect.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_artifacts.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_commands.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_controller.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_controller_recovery.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_definition.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_discussion_isolation.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_growing_context.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_index.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_next_fire.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_occurrence_recovery.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_replay_read_only.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_retry.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_session_turns.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_status.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_tool_approval.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_browser_probe_target_walling.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_budget_law_no_unrequested_caps.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_capability_default_reasoning.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_chat_summarizer_integration.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_code_node_restricted_python.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_command_store.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_compaction_helpers.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_compaction_summarizer_route.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_config_facade_models_engines.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_control_adapter_while.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_controller_bundle_packaged.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_crash_ordering_inversions.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_create_if_absent.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_data_registry_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_camera_gating.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_comms_gating.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_include_skim_files.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_include_skim_folders.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_include_skim_web.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_search_files_executor.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_diary_capture.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_diary_write_rescue.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_directory_lease.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_disabled_toolsets_seam.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_discovery_survives_unbuildable_default.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_discovery_voice_openai_api_key.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_discussion_session_anchor.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_document_markdown_tables.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_document_renderers_hr_quote.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_durable_toolsets.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_durable_write_discipline.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_e2e_tool_calls_idempotency_lmstudio.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_effect_cancellation.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_effect_issuance_idempotency.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_effect_payload_stays_json_serializable.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_election_consequence_teaching.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_emergence_experiment.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_emit_event_uses_wait_index.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_emit_event_without_workflow_registry.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_endpoint_profile_route_context.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_awake_memory_fixes.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_brain_effects.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_chat_driver.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_chat_tools_reflection.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_diary.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_execute_tool.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_fetch_url_tool.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_history_window.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_life_loop.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_memory_richness.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_phase_graph_conformance.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_react_visit_window.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_recent_memories.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_runtime.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_search_memory.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_sleep_bound_and_yield_attribution.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_substrate_resolution.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_visit_honesty.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_workspace_cap.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_workspace_tools.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_event_wait_index.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_every_path_bearing_tool_is_walled.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_evidence_recorder.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_evidence_recorder_post_policy_envelope.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_execute_command_output_offload.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_execution_capability_discovery.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_explicit_eject_other_clients.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_factory_default_retry_policy.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_factory_timeouts_default_to_abstractcore_config.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_format_repair_nudge.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_fresh_install_no_provider.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_gateway_facades_c4899.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_git_read_only_refiner.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_hf_process_residency_merge.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_history_window_multimodal.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_hot_path_store_reads.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_indexed_idempotency_lookup.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_integration_abstractcore.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_integrations_abstractcore.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_json_file_run_store_children_index.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_json_run_cache_bound.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_json_store_scan_memo.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_jsonl_ledger_recovery.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_kg_learn_and_recall_contract.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_ledger_chain.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_ledger_record_slimming.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_ledger_subscription.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_live_token_deltas.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_media_artifact_refs.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_media_artifact_refs_persist_across_restart.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_media_uses_source_path_label.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_payload_shape_refusal.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_requires_prompt.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_response_schema_normalization.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_structured_output_fallback.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_text_phase_progress.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_truncation_retry_contract.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_use_context_appends_turn.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_verbatim_payload_capture.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_client_grounding_tail.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_client_media_artifacts.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_client_system_context.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_client_tool_call_parsing.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_retry_classification.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_streaming_on_token.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_local_helper_tool_exposure.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_local_residency_host_sweep.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_local_runtime_timeout_kwarg_policy.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_max_iterations_ceiling.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mcp_remote_tool_executor.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mcp_worker_logging.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mcp_worker_security.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mcp_worker_stdio.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_media_artifact_resolution.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_media_capability_default_routing.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_media_subprocess.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memact_composer_from_kg_result.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_appraise_handler.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_communities.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_assert_attributes_defaults.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_packets.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_predicate_aliasing.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_query_packetization_restart.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_query_recall_level_policy.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_semantic_query_ranking.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_note_effect.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_query_effect.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_query_rich_filters.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_scope_and_rehydrate_effect.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_seam_handlers.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_seam_sqlite_durability.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_tag_effect.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mlx_generation_serialization.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mlx_process_residency_merge.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_model_eject_cancel.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_model_residency_clean_switch.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_model_residency_control_plane.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_model_residency_lock_and_context_estimate.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_multi_store_scheduler.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_multimodal_abstractcore_integration.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_native_mlx_application_wiring.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_native_mlx_execution_controls_live.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_native_tool_channel.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_night_voice.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_no_default_provider_refusal_ux.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_offload_answer_chain_c4978.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_offloaded_node_traces_report_unknown_not_zero.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_offloading.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_parallel_readonly_tool_execution.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_pause_resume.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_pdf_unicode_rendering.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_personal_cycle.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_phantom_attachment_index.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_phase_graph_artifact_control.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_phase_graph_obedience.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_phase_vocabulary_migration.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_pooled_client_strips_construction_cache_key.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_export_import.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_fingerprint_stability.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_modules.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_posture_inheritance.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_thinking_and_prompt_only.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_overlay.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_provider_endpoint_profile_resolution.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_provider_pin_routing_isolation.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_queryable_run_store.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_read_file_fallback_to_session_attachments.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_read_idle_threading.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_readoption_experiment.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_real_integration.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_realize_election.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_recall_levels_policy.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_remote_client_cancel.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_remote_llm_client.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_remote_speculation_defaults.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_rendering_agent_trace_report.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_rendering_json_stringify.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_report_branding.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_resume_concurrent_same_wait.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_retry_idempotency.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_history_bundle.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_index_workspace_root.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_mutation_lock.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_scoped_tool_policy.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_tool_scope_ceiling.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_browser_session_boundary.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_config_max_output_tokens_fallback.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_default_provider_model_refresh.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_effect_invocation_trace.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_health_and_bounded_vars.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_install_boundary.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_llm_call_grounding_in_ledger.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_node_traces.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_start_seeds_tool_support.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_tick_step_gate.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_scheduler.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_send_email_refiner.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_attachments_registry_and_open_tool.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_history.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_prompt_cache_attribution.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_prompt_cache_visibility.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_route_stamp.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_start_cost.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_shell_tool_exposure.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_snapshots.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_speculation_inheritance.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_speculation_reaches_provider_construction.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_sqlite_ledger_store.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_start_subworkflow_async_wait.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_start_subworkflow_inherit_context_merges_messages.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_start_subworkflow_workspace_inheritance.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_steer_sidecar.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_storage_deletion.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_structured_output_schema_enum.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_subworkflow.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_terminal_effect_completion.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_terminal_resume_appends_ledger_completion.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_thinking_inheritance.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tick_completion_includes_output_in_ledger.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_approval_executor.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_approval_resume_executes.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_approval_wait_key_identity.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_calls_idempotency_keys.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_catalog.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_descriptor_registry.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_argument_sanitization.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_error_output_detection.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_filename_alias.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_kwarg_canonicalization.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_read_file_aliases.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_timeout.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_inventory_facade.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_invoke_effect.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_policy_and_mounts.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_wait_allowlist_safety.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_topic_election_world_model.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_trace_context_propagation.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_trigger_registry.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_trigger_schedule_math.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_turn_grounding_byte_stability.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_turn_grounding_carriers_a3.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_vars_query_effect.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visit_ab_fixture.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visit_midturn_elections.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visit_midturn_resume.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visit_workflow.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_output_context_includes_messages.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_skills_block_passthrough.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_tool_observations_persist_across_restart.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_use_context_inherits_attachments.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_use_context_persists_tool_observations.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_use_context_persists_turn.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_entity_memory_nodes.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_flow_end_effect_only_persistence.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_llm_call_partial_override.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_llm_call_schema_ref_resolution.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_memact_compose_node.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_memory_kg_query_outputs_propagate.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_memory_kg_resolve_outputs_propagate.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_multi_entry_loop_overrides.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_unknown_node_type_refuses.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_wait_event_deadline_passthrough.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_add_message_builtin.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_add_message_node_appends_to_active_context.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_agora_react_agent.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_call_tool_node.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_capability_routes_and_thinking.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_compiler_basic.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_context_and_builder_nodes.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_continue_on_error.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_edit_json_schema_node.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_event_inbox_react_agent.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_file_nodes_workspace.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_function_library.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_get_element_node.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_get_random_element_node.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_get_var_node.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_has_tools_builtin.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_llm_call_context_attachments_map_to_media.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_llm_call_multimodal_output.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_make_object_node.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_media_nodes.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_memory_effect_nodes.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_memory_source_pins.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_pin_expressions.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_prompt_only.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_random_nodes.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_schema_enum_switch.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_string_contains_replace.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_tool_parameters_node.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_voice_openai_api_key_path.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_w4_feelings_lens.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_wait_event_deadline.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_wait_event_prompt_metadata.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_wait_until_streak.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_wait_until_utc_normalization.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workflow_bundle_registry.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_builtin_deny.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_policy_absolute_reanchor.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_policy_allowlist_mode.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_policy_mount_virtual_paths.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_policy_tool_calls_persist_across_restart.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_prompt_context.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_read_only.py +0 -0
- {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_write_chart.py +0 -0
|
@@ -11,7 +11,7 @@ The canonical dependency list lives in `pyproject.toml`.
|
|
|
11
11
|
- **AbstractMemory** (`>=0.3.0`) — TripleStore models and store contract used by Runtime's `MEMORY_KG_*` effects. Durable/vector backend dependencies such as LanceDB remain selected by hosts.
|
|
12
12
|
|
|
13
13
|
## Runtime integrations
|
|
14
|
-
- **abstractcore** (`abstractcore
|
|
14
|
+
- **abstractcore** (`abstractcore>=2.19.0`) — LLM, tools, media, and capability integration used by the base `abstractruntime` install (AbstractCore's light install); the `apple` and `gpu` extras select `abstractcore[apple]` / `abstractcore[gpu]` at the same floor (declared in `pyproject.toml`, implementation under `src/abstractruntime/integrations/abstractcore/*`, docs: `docs/integrations/abstractcore.md`).
|
|
15
15
|
- The AbstractCore integration uses **httpx** for remote mode (`src/abstractruntime/integrations/abstractcore/llm_client.py`) and **pydantic** for structured validation (`src/abstractruntime/integrations/abstractcore/effect_handlers.py`). These are provided by AbstractCore’s dependency set.
|
|
16
16
|
- The `tools` extra of AbstractCore backs the base Runtime toolset and the `abstractruntime-mcp-worker` entry point.
|
|
17
17
|
- **RestrictedPython** (`>=7.0`, core install) — sandbox for VisualFlow “Code” nodes and pin expressions (`src/abstractruntime/visualflow_compiler/visual/code_executor.py`).
|
|
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.7.2] - 2026-09-29
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **Dependencies follow AbstractCore's three install settings.** The base install requires
|
|
15
|
+
`abstractcore>=2.19.0` (its light install: remote providers, built-in tools and the MCP worker's
|
|
16
|
+
web tools, media inputs, and the voice/vision/music plugins), `abstractruntime[apple]` requires
|
|
17
|
+
`abstractcore[apple]>=2.19.0` and `abstractruntime[gpu]` requires `abstractcore[gpu]>=2.19.0`.
|
|
18
|
+
What gets installed is unchanged; the deprecated AbstractCore extras (`remote`, `tools`, `voice`,
|
|
19
|
+
`all-apple`, `all-gpu`, ...) are no longer named.
|
|
20
|
+
- **`openai` may be 2.x (`openai<3.0.0,>=1.109.1`).** The `<2.0.0` cap held vLLM at an old release
|
|
21
|
+
in the `gpu` setting (newer vLLM needs `openai>=2`), and that release does not start with
|
|
22
|
+
Transformers 5.
|
|
23
|
+
- **The MCP worker's startup tip names the right install.** When `abstractruntime-mcp-worker` fails
|
|
24
|
+
to start, its tip says that the web tools come with AbstractCore's light install and suggests
|
|
25
|
+
`pip install -U abstractcore` to repair it, instead of pointing to the deprecated
|
|
26
|
+
`abstractcore[tools]` extra.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- **The local STT model catalog lists each engine's own models.** When AbstractVoice's catalog
|
|
31
|
+
carried no per-provider STT map (for example with no OpenAI key),
|
|
32
|
+
`GET /api/gateway/audio/transcriptions/models` listed OpenAI's `gpt-4o-transcribe` as a
|
|
33
|
+
faster-whisper model and reported it as `active_model`. `local_list_stt_models()` now asks each
|
|
34
|
+
STT provider for its own list (without loading an engine) and takes `active_model` from the active
|
|
35
|
+
provider's list.
|
|
36
|
+
|
|
10
37
|
## [0.7.1] - 2026-09-28
|
|
11
38
|
|
|
12
39
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: AbstractRuntime
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
4
4
|
Summary: AbstractRuntime: a durable graph runner designed to pair with AbstractCore.
|
|
5
5
|
Project-URL: AbstractCore (website), https://www.abstractcore.ai/
|
|
6
6
|
Project-URL: AbstractRuntime (GitHub), https://github.com/lpalbou/abstractruntime
|
|
@@ -20,12 +20,12 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
22
|
Requires-Python: >=3.10
|
|
23
|
-
Requires-Dist: abstractcore
|
|
23
|
+
Requires-Dist: abstractcore>=2.19.0
|
|
24
24
|
Requires-Dist: abstractmemory>=0.3.0
|
|
25
25
|
Requires-Dist: abstractsemantics>=0.0.5
|
|
26
26
|
Requires-Dist: anyio<5.0.0,>=4.12.1
|
|
27
27
|
Requires-Dist: httpx<1.0.0,>=0.28.1
|
|
28
|
-
Requires-Dist: openai<
|
|
28
|
+
Requires-Dist: openai<3.0.0,>=1.109.1
|
|
29
29
|
Requires-Dist: pandas<3.0.0,>=1.0.0
|
|
30
30
|
Requires-Dist: pillow<13.0.0,>=10.0.0
|
|
31
31
|
Requires-Dist: pypdf<7.0.0,>=6.0.0
|
|
@@ -35,14 +35,14 @@ Requires-Dist: reportlab<5.0.0,>=4.0.0
|
|
|
35
35
|
Requires-Dist: restrictedpython>=7.0
|
|
36
36
|
Requires-Dist: unstructured[docx,odt,pptx,rtf,xlsx]<0.19.0,>=0.18.32
|
|
37
37
|
Provides-Extra: apple
|
|
38
|
-
Requires-Dist: abstractcore[
|
|
38
|
+
Requires-Dist: abstractcore[apple]>=2.19.0; extra == 'apple'
|
|
39
39
|
Requires-Dist: setuptools<82.0.0,>=80.10.2; extra == 'apple'
|
|
40
40
|
Provides-Extra: docs
|
|
41
41
|
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
|
|
42
42
|
Requires-Dist: mkdocs>=1.6.0; extra == 'docs'
|
|
43
43
|
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
|
|
44
44
|
Provides-Extra: gpu
|
|
45
|
-
Requires-Dist: abstractcore[
|
|
45
|
+
Requires-Dist: abstractcore[gpu]>=2.19.0; extra == 'gpu'
|
|
46
46
|
Requires-Dist: setuptools<82.0.0,>=77.0.3; extra == 'gpu'
|
|
47
47
|
Provides-Extra: test
|
|
48
48
|
Requires-Dist: pytest>=7.0.0; extra == 'test'
|
|
@@ -54,7 +54,7 @@ Description-Content-Type: text/markdown
|
|
|
54
54
|
|
|
55
55
|
It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
|
|
56
56
|
|
|
57
|
-
**Version:** 0.7.
|
|
57
|
+
**Version:** 0.7.2 • **Python:** 3.10+
|
|
58
58
|
|
|
59
59
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
60
60
|
|
|
@@ -82,8 +82,8 @@ Remote-light runtime:
|
|
|
82
82
|
pip install abstractruntime
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
The base install includes AbstractCore 2.
|
|
86
|
-
|
|
85
|
+
The base install includes AbstractCore 2.19.0 or newer (its light install:
|
|
86
|
+
remote providers, tools, vision, voice, audio, and music integration), plus the
|
|
87
87
|
`abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
|
|
88
88
|
default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
|
|
89
89
|
sentence-transformer embeddings are not selected unless you choose a hardware
|
|
@@ -146,7 +146,7 @@ state = rt.resume(
|
|
|
146
146
|
assert state.status.value == "completed"
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
## What’s included (v0.7.
|
|
149
|
+
## What’s included (v0.7.2)
|
|
150
150
|
|
|
151
151
|
Kernel (import-light):
|
|
152
152
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
|
|
6
6
|
|
|
7
|
-
**Version:** 0.7.
|
|
7
|
+
**Version:** 0.7.2 • **Python:** 3.10+
|
|
8
8
|
|
|
9
9
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
10
10
|
|
|
@@ -32,8 +32,8 @@ Remote-light runtime:
|
|
|
32
32
|
pip install abstractruntime
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
The base install includes AbstractCore 2.
|
|
36
|
-
|
|
35
|
+
The base install includes AbstractCore 2.19.0 or newer (its light install:
|
|
36
|
+
remote providers, tools, vision, voice, audio, and music integration), plus the
|
|
37
37
|
`abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
|
|
38
38
|
default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
|
|
39
39
|
sentence-transformer embeddings are not selected unless you choose a hardware
|
|
@@ -96,7 +96,7 @@ state = rt.resume(
|
|
|
96
96
|
assert state.status.value == "completed"
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
## What’s included (v0.7.
|
|
99
|
+
## What’s included (v0.7.2)
|
|
100
100
|
|
|
101
101
|
Kernel (import-light):
|
|
102
102
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -277,7 +277,7 @@ from Core route resolution and persisted from `LLM_CALL` results.
|
|
|
277
277
|
|
|
278
278
|
### AbstractCore (LLM + tools)
|
|
279
279
|
|
|
280
|
-
Requires: `pip install abstractruntime` (AbstractCore 2.
|
|
280
|
+
Requires: `pip install abstractruntime` (AbstractCore 2.19.0 or newer is part of the base install).
|
|
281
281
|
|
|
282
282
|
Implementation: `src/abstractruntime/integrations/abstractcore/*`.
|
|
283
283
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# AbstractRuntime — Architecture
|
|
2
2
|
|
|
3
|
-
> Updated: 2026-09-
|
|
4
|
-
> Version: 0.7.
|
|
3
|
+
> Updated: 2026-09-29
|
|
4
|
+
> Version: 0.7.2
|
|
5
5
|
> Scope: this describes **what is implemented in this repository**.
|
|
6
6
|
|
|
7
7
|
AbstractRuntime is a **durable workflow runtime**: it executes workflow graphs as a persisted state machine with explicit waits (user, time, events, jobs, subworkflows). A run can pause for hours/days and resume **without** keeping Python stacks/coroutines alive.
|
|
@@ -20,7 +20,7 @@ Fix:
|
|
|
20
20
|
- Install or upgrade the base Runtime package. LLM/tools integration, common
|
|
21
21
|
remote-light multimodal dependencies, and the MCP worker entry point are part
|
|
22
22
|
of the base install.
|
|
23
|
-
- The current AbstractCore integration expects `abstractcore>=2.
|
|
23
|
+
- The current AbstractCore integration expects `abstractcore>=2.19.0`.
|
|
24
24
|
|
|
25
25
|
Verify:
|
|
26
26
|
|
|
@@ -52,7 +52,7 @@ See llms.txt for the linked index.
|
|
|
52
52
|
|
|
53
53
|
It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
|
|
54
54
|
|
|
55
|
-
**Version:** 0.7.
|
|
55
|
+
**Version:** 0.7.2 • **Python:** 3.10+
|
|
56
56
|
|
|
57
57
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
58
58
|
|
|
@@ -80,8 +80,8 @@ Remote-light runtime:
|
|
|
80
80
|
pip install abstractruntime
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
-
The base install includes AbstractCore 2.
|
|
84
|
-
|
|
83
|
+
The base install includes AbstractCore 2.19.0 or newer (its light install:
|
|
84
|
+
remote providers, tools, vision, voice, audio, and music integration), plus the
|
|
85
85
|
`abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
|
|
86
86
|
default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
|
|
87
87
|
sentence-transformer embeddings are not selected unless you choose a hardware
|
|
@@ -144,7 +144,7 @@ state = rt.resume(
|
|
|
144
144
|
assert state.status.value == "completed"
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
## What’s included (v0.7.
|
|
147
|
+
## What’s included (v0.7.2)
|
|
148
148
|
|
|
149
149
|
Kernel (import-light):
|
|
150
150
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -429,8 +429,8 @@ rt = create_local_runtime(provider="ollama", model="qwen3:4b")
|
|
|
429
429
|
|
|
430
430
|
# AbstractRuntime — Architecture
|
|
431
431
|
|
|
432
|
-
> Updated: 2026-09-
|
|
433
|
-
> Version: 0.7.
|
|
432
|
+
> Updated: 2026-09-29
|
|
433
|
+
> Version: 0.7.2
|
|
434
434
|
> Scope: this describes **what is implemented in this repository**.
|
|
435
435
|
|
|
436
436
|
AbstractRuntime is a **durable workflow runtime**: it executes workflow graphs as a persisted state machine with explicit waits (user, time, events, jobs, subworkflows). A run can pause for hours/days and resume **without** keeping Python stacks/coroutines alive.
|
|
@@ -1132,7 +1132,7 @@ from Core route resolution and persisted from `LLM_CALL` results.
|
|
|
1132
1132
|
|
|
1133
1133
|
### AbstractCore (LLM + tools)
|
|
1134
1134
|
|
|
1135
|
-
Requires: `pip install abstractruntime` (AbstractCore 2.
|
|
1135
|
+
Requires: `pip install abstractruntime` (AbstractCore 2.19.0 or newer is part of the base install).
|
|
1136
1136
|
|
|
1137
1137
|
Implementation: `src/abstractruntime/integrations/abstractcore/*`.
|
|
1138
1138
|
|
|
@@ -1633,7 +1633,7 @@ Fix:
|
|
|
1633
1633
|
- Install or upgrade the base Runtime package. LLM/tools integration, common
|
|
1634
1634
|
remote-light multimodal dependencies, and the MCP worker entry point are part
|
|
1635
1635
|
of the base install.
|
|
1636
|
-
- The current AbstractCore integration expects `abstractcore>=2.
|
|
1636
|
+
- The current AbstractCore integration expects `abstractcore>=2.19.0`.
|
|
1637
1637
|
|
|
1638
1638
|
Verify:
|
|
1639
1639
|
|
|
@@ -5266,7 +5266,7 @@ The canonical dependency list lives in `pyproject.toml`.
|
|
|
5266
5266
|
- **AbstractMemory** (`>=0.3.0`) — TripleStore models and store contract used by Runtime's `MEMORY_KG_*` effects. Durable/vector backend dependencies such as LanceDB remain selected by hosts.
|
|
5267
5267
|
|
|
5268
5268
|
## Runtime integrations
|
|
5269
|
-
- **abstractcore** (`abstractcore
|
|
5269
|
+
- **abstractcore** (`abstractcore>=2.19.0`) — LLM, tools, media, and capability integration used by the base `abstractruntime` install (AbstractCore's light install); the `apple` and `gpu` extras select `abstractcore[apple]` / `abstractcore[gpu]` at the same floor (declared in `pyproject.toml`, implementation under `src/abstractruntime/integrations/abstractcore/*`, docs: `docs/integrations/abstractcore.md`).
|
|
5270
5270
|
- The AbstractCore integration uses **httpx** for remote mode (`src/abstractruntime/integrations/abstractcore/llm_client.py`) and **pydantic** for structured validation (`src/abstractruntime/integrations/abstractcore/effect_handlers.py`). These are provided by AbstractCore’s dependency set.
|
|
5271
5271
|
- The `tools` extra of AbstractCore backs the base Runtime toolset and the `abstractruntime-mcp-worker` entry point.
|
|
5272
5272
|
- **RestrictedPython** (`>=7.0`, core install) — sandbox for VisualFlow “Code” nodes and pin expressions (`src/abstractruntime/visualflow_compiler/visual/code_executor.py`).
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
> Durable workflow runtime (interrupt → checkpoint → resume) with an append-only execution ledger.
|
|
4
4
|
|
|
5
5
|
- Python: 3.10+ (see `pyproject.toml`)
|
|
6
|
-
- Version: 0.7.
|
|
6
|
+
- Version: 0.7.2
|
|
7
7
|
- Ecosystem: [AbstractFramework](https://github.com/lpalbou/AbstractFramework) umbrella, integrates with [AbstractCore](https://github.com/lpalbou/abstractcore)
|
|
8
8
|
- Hard invariant: `RunState.vars` must be JSON-serializable (`src/abstractruntime/core/models.py`)
|
|
9
|
-
- Current AbstractCore baseline: base `abstractruntime`
|
|
9
|
+
- Current AbstractCore baseline: base `abstractruntime` requires AbstractCore 2.19.0 or newer with its light install (remote providers, tools and the MCP worker, media routing); `abstractruntime[apple]` and `abstractruntime[gpu]` require AbstractCore's `apple` and `gpu` settings (`pyproject.toml`)
|
|
10
10
|
- Install profiles: base `abstractruntime` is remote-light with MCP, generated media routing, and Runtime-owned permissive PDF read/write nodes; `abstractruntime[apple]` and `abstractruntime[gpu]` add local inferencer stacks.
|
|
11
11
|
- Config boundary: Runtime does not read `ABSTRACTGATEWAY_*`; Gateway-owned config should be translated into explicit Runtime inputs or Runtime-owned env names. Hosts can attach `resolve_provider_endpoint_profile(provider_id)` to the LLM client; Runtime treats it as an optional resolver hook, injects transient provider/base URL/key params for the call, and redacts secret-like params from persisted observability.
|
|
12
12
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "AbstractRuntime"
|
|
7
|
-
version = "0.7.
|
|
7
|
+
version = "0.7.2"
|
|
8
8
|
description = "AbstractRuntime: a durable graph runner designed to pair with AbstractCore."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -48,10 +48,11 @@ dependencies = [
|
|
|
48
48
|
# package extras owned by AbstractMemory and selected by hosts such as Gateway.
|
|
49
49
|
"AbstractMemory>=0.3.0",
|
|
50
50
|
# Runtime's base install is the remote-light workflow host: LLM/tool effects,
|
|
51
|
-
# MCP worker support, and multimodal routing
|
|
52
|
-
#
|
|
53
|
-
|
|
54
|
-
"
|
|
51
|
+
# MCP worker support, and multimodal routing come with AbstractCore's light
|
|
52
|
+
# install (remote providers, built-in tools, media inputs, voice/vision/music
|
|
53
|
+
# plugins) without selecting local inference engines.
|
|
54
|
+
"abstractcore>=2.19.0",
|
|
55
|
+
"openai<3.0.0,>=1.109.1",
|
|
55
56
|
"httpx<1.0.0,>=0.28.1",
|
|
56
57
|
"anyio<5.0.0,>=4.12.1",
|
|
57
58
|
"Pillow<13.0.0,>=10.0.0",
|
|
@@ -67,12 +68,12 @@ dependencies = [
|
|
|
67
68
|
|
|
68
69
|
[project.optional-dependencies]
|
|
69
70
|
apple = [
|
|
70
|
-
"abstractcore[
|
|
71
|
+
"abstractcore[apple]>=2.19.0",
|
|
71
72
|
"setuptools<82.0.0,>=80.10.2",
|
|
72
73
|
]
|
|
73
74
|
|
|
74
75
|
gpu = [
|
|
75
|
-
"abstractcore[
|
|
76
|
+
"abstractcore[gpu]>=2.19.0",
|
|
76
77
|
# vLLM 0.9-0.19 caps setuptools below 80; 77.0.3 is still a modern floor.
|
|
77
78
|
"setuptools<82.0.0,>=77.0.3",
|
|
78
79
|
]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
### Changed
|
|
2
|
+
|
|
3
|
+
- **Dependencies follow AbstractCore's three install settings.** The base install requires
|
|
4
|
+
`abstractcore>=2.19.0` (its light install: remote providers, built-in tools and the MCP worker's
|
|
5
|
+
web tools, media inputs, and the voice/vision/music plugins), `abstractruntime[apple]` requires
|
|
6
|
+
`abstractcore[apple]>=2.19.0` and `abstractruntime[gpu]` requires `abstractcore[gpu]>=2.19.0`.
|
|
7
|
+
What gets installed is unchanged; the deprecated AbstractCore extras (`remote`, `tools`, `voice`,
|
|
8
|
+
`all-apple`, `all-gpu`, ...) are no longer named.
|
|
9
|
+
- **`openai` may be 2.x (`openai<3.0.0,>=1.109.1`).** The `<2.0.0` cap held vLLM at an old release
|
|
10
|
+
in the `gpu` setting (newer vLLM needs `openai>=2`), and that release does not start with
|
|
11
|
+
Transformers 5.
|
|
12
|
+
- **The MCP worker's startup tip names the right install.** When `abstractruntime-mcp-worker` fails
|
|
13
|
+
to start, its tip says that the web tools come with AbstractCore's light install and suggests
|
|
14
|
+
`pip install -U abstractcore` to repair it, instead of pointing to the deprecated
|
|
15
|
+
`abstractcore[tools]` extra.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- **The local STT model catalog lists each engine's own models.** When AbstractVoice's catalog
|
|
20
|
+
carried no per-provider STT map (for example with no OpenAI key),
|
|
21
|
+
`GET /api/gateway/audio/transcriptions/models` listed OpenAI's `gpt-4o-transcribe` as a
|
|
22
|
+
faster-whisper model and reported it as `active_model`. `local_list_stt_models()` now asks each
|
|
23
|
+
STT provider for its own list (without loading an engine) and takes `active_model` from the active
|
|
24
|
+
provider's list.
|
|
@@ -1295,16 +1295,35 @@ def local_list_stt_models(
|
|
|
1295
1295
|
)
|
|
1296
1296
|
active_provider = str(catalog.get("active_stt_provider") or "").strip()
|
|
1297
1297
|
if cleaned and not models_by_provider and (active_provider or providers):
|
|
1298
|
-
|
|
1298
|
+
# The catalog carried no per-provider STT map (AbstractVoice's light
|
|
1299
|
+
# catalog, e.g. when the default OpenAI engine has no key). The flat
|
|
1300
|
+
# list spans every engine, so attributing it to the active provider
|
|
1301
|
+
# advertised OpenAI's gpt-4o-transcribe as a faster-whisper model and
|
|
1302
|
+
# as the active model (framework backlog 0989). Ask each provider for
|
|
1303
|
+
# its own list instead; that call is engine-free.
|
|
1304
|
+
for provider_id in _dedupe_strings(([active_provider] if active_provider else []) + providers):
|
|
1305
|
+
try:
|
|
1306
|
+
provider_models = voice.list_stt_models(provider=provider_id)
|
|
1307
|
+
except Exception:
|
|
1308
|
+
continue
|
|
1309
|
+
provider_cleaned = _dedupe_strings([str(item) for item in list(provider_models or [])])
|
|
1310
|
+
if provider_cleaned:
|
|
1311
|
+
models_by_provider[provider_id] = provider_cleaned
|
|
1312
|
+
active_provider_value = active_provider or (providers[0] if providers else None)
|
|
1313
|
+
if active_provider_value and models_by_provider:
|
|
1314
|
+
active_provider_models = models_by_provider.get(active_provider_value) or []
|
|
1315
|
+
active_model = active_provider_models[0] if active_provider_models else None
|
|
1316
|
+
else:
|
|
1317
|
+
active_model = cleaned[0] if cleaned else None
|
|
1299
1318
|
payload = _with_status(
|
|
1300
1319
|
{
|
|
1301
1320
|
"models": cleaned,
|
|
1302
|
-
"active_model":
|
|
1321
|
+
"active_model": active_model,
|
|
1303
1322
|
"providers": providers,
|
|
1304
1323
|
"available_providers": list(catalog.get("available_stt_providers") or providers)
|
|
1305
1324
|
if isinstance(catalog.get("available_stt_providers"), list)
|
|
1306
1325
|
else providers,
|
|
1307
|
-
"active_provider":
|
|
1326
|
+
"active_provider": active_provider_value,
|
|
1308
1327
|
"models_by_provider": models_by_provider,
|
|
1309
1328
|
"stt_models_by_provider": models_by_provider,
|
|
1310
1329
|
"provider_models": _provider_models_from_mapping(models_by_provider),
|
|
@@ -536,7 +536,8 @@ def main(argv: Optional[Sequence[str]] = None) -> int:
|
|
|
536
536
|
"Failed to start MCP worker.\n\n"
|
|
537
537
|
f"Error: {e}\n\n"
|
|
538
538
|
"Tips:\n"
|
|
539
|
-
"- Ensure AbstractCore is installed
|
|
539
|
+
"- Ensure AbstractCore is installed; the web tools are part of its light install "
|
|
540
|
+
"(repair with `pip install -U abstractcore`).\n"
|
|
540
541
|
"- Choose toolsets explicitly (e.g. `--toolsets files` or `--toolsets files,system`).\n"
|
|
541
542
|
)
|
|
542
543
|
return 1
|
|
@@ -1478,3 +1478,45 @@ def test_remote_discovery_marks_transport_failures_as_route_unavailable() -> Non
|
|
|
1478
1478
|
assert payload["available"] is False
|
|
1479
1479
|
assert payload["route_available"] is False
|
|
1480
1480
|
assert payload["error"] == "connection refused"
|
|
1481
|
+
|
|
1482
|
+
|
|
1483
|
+
def test_local_stt_catalog_without_provider_map_asks_each_provider(monkeypatch) -> None:
|
|
1484
|
+
"""Framework backlog 0989: AbstractVoice's light catalog carries no per-provider STT
|
|
1485
|
+
map; the flat model list spans every engine and was attributed wholesale to the
|
|
1486
|
+
active provider, advertising OpenAI's gpt-4o-transcribe as faster-whisper's model
|
|
1487
|
+
and as the active model."""
|
|
1488
|
+
|
|
1489
|
+
from abstractruntime.integrations.abstractcore import discovery_queries
|
|
1490
|
+
|
|
1491
|
+
per_provider = {
|
|
1492
|
+
None: ["gpt-4o-transcribe", "whisper-1", "tiny", "base", "Qwen/Qwen3-ASR-1.7B"],
|
|
1493
|
+
"faster-whisper": ["tiny", "base"],
|
|
1494
|
+
"transformers-asr": ["Qwen/Qwen3-ASR-1.7B"],
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
class _FakeVoice:
|
|
1498
|
+
def voice_catalog(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
|
|
1499
|
+
_ = args, kwargs
|
|
1500
|
+
return {
|
|
1501
|
+
"active_stt_provider": "faster-whisper",
|
|
1502
|
+
"stt_providers": ["faster-whisper", "transformers-asr"],
|
|
1503
|
+
"stt_models_by_provider": {},
|
|
1504
|
+
}
|
|
1505
|
+
|
|
1506
|
+
def list_stt_models(self, provider: str | None = None) -> List[str]:
|
|
1507
|
+
return list(per_provider.get(provider, []))
|
|
1508
|
+
|
|
1509
|
+
class _FakeRegistry:
|
|
1510
|
+
voice = _FakeVoice()
|
|
1511
|
+
|
|
1512
|
+
monkeypatch.setattr(discovery_queries, "_runtime_capability_registry", lambda **_kwargs: _FakeRegistry())
|
|
1513
|
+
|
|
1514
|
+
payload = discovery_queries.local_list_stt_models()
|
|
1515
|
+
|
|
1516
|
+
assert payload["active_provider"] == "faster-whisper"
|
|
1517
|
+
assert payload["active_model"] == "tiny"
|
|
1518
|
+
assert payload["stt_models_by_provider"] == {
|
|
1519
|
+
"faster-whisper": ["tiny", "base"],
|
|
1520
|
+
"transformers-asr": ["Qwen/Qwen3-ASR-1.7B"],
|
|
1521
|
+
}
|
|
1522
|
+
assert "gpt-4o-transcribe" not in payload["stt_models_by_provider"]["faster-whisper"]
|
{abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_discovery_tts_unavailable_reason.py
RENAMED
|
@@ -14,7 +14,7 @@ import pytest
|
|
|
14
14
|
|
|
15
15
|
from abstractruntime.integrations.abstractcore import discovery_queries as dq
|
|
16
16
|
|
|
17
|
-
# AbstractVoice is a declared dependency (
|
|
17
|
+
# AbstractVoice is a declared dependency (through AbstractCore's light install):
|
|
18
18
|
# the first two tests run the real catalog, engine-free, with no key configured.
|
|
19
19
|
|
|
20
20
|
|
|
@@ -3,6 +3,8 @@ from __future__ import annotations
|
|
|
3
3
|
import re
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
|
|
6
|
+
import pytest
|
|
7
|
+
|
|
6
8
|
|
|
7
9
|
def _extract_optional_dependency_block(text: str, *, key: str) -> str:
|
|
8
10
|
lines = text.splitlines()
|
|
@@ -50,8 +52,10 @@ def test_runtime_base_is_remote_light_with_multimodal_and_mcp_support() -> None:
|
|
|
50
52
|
assert "abstractcore = [" not in text
|
|
51
53
|
assert "multimodal = [" not in text
|
|
52
54
|
assert "mcp-worker = [" not in text
|
|
53
|
-
assert '"abstractcore
|
|
54
|
-
|
|
55
|
+
assert '"abstractcore>=2.19.0"' in text
|
|
56
|
+
# Only AbstractCore's three install settings: light (no extra), apple, gpu.
|
|
57
|
+
assert re.findall(r'"abstractcore\[([^\]]*)\]', text) == ["apple", "gpu"]
|
|
58
|
+
assert '"openai<3.0.0,>=1.109.1"' in text
|
|
55
59
|
assert '"httpx<1.0.0,>=0.28.1"' in text
|
|
56
60
|
assert '"anyio<5.0.0,>=4.12.1"' in text
|
|
57
61
|
assert '"Pillow<13.0.0,>=10.0.0"' in text
|
|
@@ -85,17 +89,42 @@ def test_runtime_exposes_only_apple_and_gpu_user_install_profiles() -> None:
|
|
|
85
89
|
apple_block = _extract_optional_dependency_block(text, key="apple")
|
|
86
90
|
gpu_block = _extract_optional_dependency_block(text, key="gpu")
|
|
87
91
|
|
|
88
|
-
assert '"abstractcore[
|
|
89
|
-
assert '"abstractcore[
|
|
92
|
+
assert '"abstractcore[apple]>=2.19.0"' in apple_block
|
|
93
|
+
assert '"abstractcore[gpu]>=2.19.0"' in gpu_block
|
|
90
94
|
assert '"setuptools<82.0.0,>=80.10.2"' in apple_block
|
|
91
95
|
assert '"setuptools<82.0.0,>=77.0.3"' in gpu_block
|
|
92
96
|
assert "pymupdf" not in apple_block.lower()
|
|
93
97
|
assert "pymupdf" not in gpu_block.lower()
|
|
94
98
|
|
|
99
|
+
|
|
100
|
+
def test_sibling_abstractcore_profiles_keep_pypdf_and_exclude_pymupdf() -> None:
|
|
101
|
+
"""Workspace-only check: the AbstractCore profiles Runtime's apple/gpu extras select
|
|
102
|
+
install the permissive pypdf reader and never PyMuPDF. Skipped outside the monorepo."""
|
|
103
|
+
|
|
104
|
+
pyproject = Path(__file__).resolve().parents[1] / "pyproject.toml"
|
|
95
105
|
core_pyproject = pyproject.resolve().parents[1] / "abstractcore" / "pyproject.toml"
|
|
96
|
-
if core_pyproject.exists():
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
106
|
+
if not core_pyproject.exists():
|
|
107
|
+
pytest.skip("no sibling abstractcore checkout")
|
|
108
|
+
tomllib = pytest.importorskip("tomllib")
|
|
109
|
+
core = tomllib.loads(core_pyproject.read_text(encoding="utf-8"))["project"]
|
|
110
|
+
extras = core["optional-dependencies"]
|
|
111
|
+
|
|
112
|
+
def resolve(profile: str, seen: tuple[str, ...] = ()) -> list[str]:
|
|
113
|
+
# Follow self-referencing aliases such as all-apple = ["abstractcore[apple]"].
|
|
114
|
+
requirements: list[str] = []
|
|
115
|
+
for req in extras[profile]:
|
|
116
|
+
match = re.fullmatch(r"abstractcore\[([^\]]+)\]", req.strip())
|
|
117
|
+
if match:
|
|
118
|
+
for inner in match.group(1).split(","):
|
|
119
|
+
inner = inner.strip()
|
|
120
|
+
assert inner not in seen, f"alias cycle through {inner}"
|
|
121
|
+
requirements += resolve(inner, seen + (profile,))
|
|
122
|
+
else:
|
|
123
|
+
requirements.append(req)
|
|
124
|
+
return requirements
|
|
125
|
+
|
|
126
|
+
base = core["dependencies"]
|
|
127
|
+
for core_profile in ("apple", "gpu"):
|
|
128
|
+
installed = base + resolve(core_profile)
|
|
129
|
+
assert any(req.replace(" ", "").startswith("pypdf>=6.0.0") for req in installed), core_profile
|
|
130
|
+
assert not any("pymupdf" in req.lower() for req in installed), core_profile
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
### Fixed
|
|
2
|
-
|
|
3
|
-
- **Images in replayed history stay images.** When the history window drops older turns, it writes a
|
|
4
|
-
`[#TRUNCATION: ...]` notice at the start of the oldest kept message. If that message held a list of content parts
|
|
5
|
-
(text plus an image, `[{"type": "text", ...}, {"type": "image_url", ...}]`), the notice turned the whole list into
|
|
6
|
-
one string, so the model received the image's base64 as text. The notice is now added as one text part and every
|
|
7
|
-
other part is left exactly as it was. A message that starts with its `<runtime_metadata>` envelope keeps it first.
|
|
8
|
-
This affects `announce_dropped` and `window_transcript`, and so the gateway's `/runs/start` client-context window and
|
|
9
|
-
any replay that keeps images. Content of any other type is left untouched and a warning is logged.
|
|
10
|
-
- **An image no longer counts as tens of thousands of tokens in the window.** `estimate_message_tokens` turned a
|
|
11
|
-
content-part list into a string, so a 150 KB inline image counted about 50,000 tokens and pushed every older turn out
|
|
12
|
-
of the history window. Text parts now count their text, and each media part (image, audio, file) counts a flat 512
|
|
13
|
-
tokens (`MEDIA_PART_TOKEN_ESTIMATE`, AbstractCore's per-image fallback). The input-budget trim
|
|
14
|
-
(`trim_messages_to_max_input_tokens`) uses the same estimate.
|
|
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.7.1 → abstractruntime-0.7.2}/docs/adr/0001_layered_coupling_with_abstractcore.md
RENAMED
|
File without changes
|
{abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0002_execution_modes_local_remote_hybrid.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
|
{abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/001_runtime_kernel.md
RENAMED
|
File without changes
|
{abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/002_persistence_and_ledger.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.7.1 → abstractruntime-0.7.2}/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.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/004_scheduler_driver.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/006_snapshots_bookmarks.md
RENAMED
|
File without changes
|
{abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/007_provenance_hash_chain.md
RENAMED
|
File without changes
|
{abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/009_artifact_store.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/011_subworkflow_support.md
RENAMED
|
File without changes
|