AbstractRuntime 0.4.33__tar.gz → 0.4.34__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/CHANGELOG.md +12 -1
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/PKG-INFO +7 -7
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/README.md +3 -3
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/api.md +1 -1
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/architecture.md +1 -1
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/getting-started.md +1 -1
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/integrations/abstractcore.md +2 -2
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/troubleshooting.md +1 -1
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/llms-full.txt +21 -10
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/llms.txt +2 -2
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/pyproject.toml +4 -4
- abstractruntime-0.4.34/release-notes.md +7 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/config_facade.py +8 -3
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_config_facade_models_engines.py +9 -2
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_packaging_extras.py +3 -3
- abstractruntime-0.4.33/release-notes.md +0 -25
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/.github/workflows/ci.yml +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/.github/workflows/release.yml +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/.gitignore +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/ACKNOWLEDGMENTS.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/CODE_OF_CONDUCT.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/CONTRIBUTING.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/LICENSE +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/ROADMAP.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/SECURITY.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/adr/0001_layered_coupling_with_abstractcore.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/adr/0002_execution_modes_local_remote_hybrid.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/adr/0003_provenance_tamper_evident_hash_chain.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/adr/0004_runtime_owns_run_scoped_media_execution_truth.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/adr/0005_runtime_owns_abstractcore_host_discovery_queries.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/adr/0006_runtime_owns_durable_abstractcore_bloc_prompt_cache.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/adr/0007_runtime_relays_core_owned_model_residency_truth.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/adr/README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/artifacts.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/001_runtime_kernel.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0030_runtime_host_facades_for_comms_telegram_and_tool_specs.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0032_runtime_durable_outbound_comms_truth.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0033_runtime_host_local_prompt_cache_export_import_surface.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0035_model_residency_provider_truth_for_local_http_clients.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0037_visualflow_generate_music_node_compiler_parity.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0039_runtime_music_structure_prompt_bool_contract.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/003_wait_primitives.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0040_task_agnostic_local_residency_listing.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0041_runtime_hardware_extras_avoid_nonpermissive_document_stacks.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0042_core_vision_upscale_and_parameter_surface.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0043_runtime_vision_adapter_and_batch_surface.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/004_scheduler_driver.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/005_abstractcore_integration.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/006_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/007_provenance_hash_chain.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/009_artifact_store.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/010_examples_and_composition.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/011_subworkflow_support.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/012_run_store_query_and_scheduler_support.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/013_effect_retries_and_idempotency.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/016_runtime_aware_parameters.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/019_runtime_host_facade_for_core_operator_surfaces.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/020_runtime_gateway_install_boundary.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/021_runtime_gateway_env_namespace_cleanup.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/022_model_residency_control_plane.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/023_truthful_local_media_residency_boundaries.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/024_runtime_owned_run_scoped_media_execution.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/026_runtime_host_discovery_facade_for_core_catalogs.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/027_runtime_durable_bloc_prompt_cache_facade.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/028_runtime_bloc_kv_lifecycle_and_pruning.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/029_runtime_music_generation_and_discovery_via_abstractcore.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/0846_mlx_instance_scheduling_and_execution_controls.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/001_integrations_abstractcore.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/001_runtime_kernel.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/002_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/0034_agent_runtime_convenience_constructor.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/003_provenance_ledger_chain.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/003_wait_resume_and_scheduler.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/004_effect_handlers_and_integrations.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/004_tests.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/005_docs_updates.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/005_examples_and_composition.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/006_ai_fingerprint_and_provenance.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/DEPRECATED_README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/abstractruntime_docs_final_02a7373b.plan.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/0070_standalone_wui_browser_session_security_contract.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/008_signatures_and_keys.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/014_remote_tool_worker_executor.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/017_limit_warnings_and_observability.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/018_workspace_access_policy_for_media_and_tools.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/0233_real_run_cancellation.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/025_runtime_retention_and_purge_contract.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/026_context_checkpoint_self_compression.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/027_quote_provenance_discipline.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/028_selective_artifact_rehydration.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/0845_session_prompt_cache_resume_and_purge_contract.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_portability/0065_portable_process_and_lock_layer.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_portability/0066_portable_io_and_media_reader.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_portability/README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0044_meta_analysis_record.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0045_crash_replay_harness_and_ordering_invariant.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0046_per_run_driver_exclusion.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0047_indexed_idempotency_lookup.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0048_durable_io_unification.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0049_llm_client_mechanical_split.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0050_control_sidecar_all_writers.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0051_runtime_owned_durable_event_mailbox.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0052_sync_store_event_loop_tripwire.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0053_bounded_run_vars_growth.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0054_runtime_health_counters.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0055_jsonl_store_honesty.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0064_prompt_cache_fingerprint_stability.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0067_durable_write_discipline.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/0068_hot_path_store_reads.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/planned/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/0031_runtime_tool_spec_adapters_for_gateway_and_mcp.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/0036_local_media_residency_bridge_to_core_residency.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/0038_core_server_pool_residency_affinity.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/0069_document_renderer_professional_figures.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/runtime_systemic_reliability/0056_schema_version_and_quarantine_loading.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/runtime_systemic_reliability/0057_trust_boundary_stamp_registry.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/runtime_systemic_reliability/0058_terminal_run_archival_helper.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/runtime_systemic_reliability/0059_memory_span_handler_extraction.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/runtime_systemic_reliability/0060_visualflow_compiler_decomposition.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/runtime_systemic_reliability/0061_root_api_deprecation_machinery.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/runtime_systemic_reliability/0062_dependency_honesty_extras.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/runtime_systemic_reliability/0063_b3_envelope_lane_unification.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/proposed/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/entity-runtime.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/evidence.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/faq.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/limits.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/manual_testing.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/mcp-worker.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/proposal.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/provenance.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/snapshots.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/tool-approval.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/tools-comms.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/workflow-bundles.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/emails.config.example.yaml +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/examples/01_hello_world.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/examples/02_ask_user.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/examples/03_wait_until.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/examples/04_multi_step.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/examples/05_persistence.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/examples/06_llm_integration.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/examples/07_react_agent.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/examples/README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/mkdocs.yml +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/pytest.ini +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/scripts/backfill_diary_edges.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/config.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/effect_cancellation.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/event_keys.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/health.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/models.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/policy.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/progress_channel.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/run_lifecycle.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/runtime.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/spec.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/tool_scope.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/core/vars.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/documents/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/documents/charts.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/documents/docx.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/documents/pdf.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/evidence/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/evidence/recorder.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/history_bundle.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/act_only.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/chat.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/communities.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/diary.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/digest.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/entity_runtime.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/fingerprint.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/lease.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/life.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/memory_reader.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/night_voice.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/phase_graph.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/phase_spec.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/prelude.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/prompt_overlay.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/reflection.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/spec/entity_phases.vendored.json +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/substrate.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/tool_effects.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/tool_policy.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/tools.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/identity/visit_workflow.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/agora_tools.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/comms_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/constants.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/data_registry_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/default_tools.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/discovery_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/discovery_queries.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/effect_handlers.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/embeddings_client.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/factory.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/host_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/llm_client.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/local_helper_tools.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/logging.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/mcp_worker.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/media_subprocess.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/observability.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/output_specs.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/run_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/session_attachments.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/summarizer.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/telegram_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/tool_executor.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/tool_inventory_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractcore/workspace_scoped_tools.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractmemory/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractmemory/brain_handlers.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractmemory/effect_handlers.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractmemory/identity_support.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/integrations/abstractmemory/seam_handlers.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/memory/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/memory/active_context.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/memory/active_memory.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/memory/compaction.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/memory/kg_packets.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/memory/memact_composer.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/memory/recall_levels.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/memory/token_budget.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/rendering/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/rendering/agent_trace_report.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/rendering/json_stringify.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/scheduler/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/scheduler/convenience.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/scheduler/multi_store.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/scheduler/registry.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/scheduler/scheduler.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/session_history.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/artifacts.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/base.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/commands.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/in_memory.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/json_files.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/lease.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/ledger_chain.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/ledger_slim.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/observable.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/offloading.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/serialize.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/snapshots.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/sqlite.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/storage/steer_sidecar.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/turn_grounding.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/utils/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/utils/atomic_files.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/utils/file_filters.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/utils/workspace_paths.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/agent_adapter.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/context_adapter.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/control_adapter.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/effect_adapter.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/event_adapter.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/function_adapter.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/memact_adapter.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/subflow_adapter.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/adapters/variable_adapter.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/compiler.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/flow.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/agent_ids.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/builtins.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/code_executor.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/execution_metrics.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/executor.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/function_library.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/models.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/multi_entry_lowering.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/visualflow_compiler/visual/pin_expressions.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/workflow_bundle/__init__.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/workflow_bundle/models.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/workflow_bundle/packer.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/workflow_bundle/reader.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/src/abstractruntime/workflow_bundle/registry.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/README.md +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/conftest.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_abstractcore_comms_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_abstractcore_discovery_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_abstractcore_host_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_abstractcore_run_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_abstractcore_telegram_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_active_context_policy.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_active_memory.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_agora_agent_alias_identity.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_agora_tools_http.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_analyze_media_addressing_and_walling.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_answer_user_effect.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_artifacts.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_browser_probe_target_walling.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_budget_law_no_unrequested_caps.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_capability_default_reasoning.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_chat_summarizer_integration.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_code_node_restricted_python.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_command_store.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_compaction_helpers.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_control_adapter_while.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_crash_ordering_inversions.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_data_registry_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_default_tools_camera_gating.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_default_tools_comms_gating.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_default_tools_include_skim_files.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_default_tools_include_skim_folders.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_default_tools_include_skim_web.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_default_tools_search_files_executor.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_diary_capture.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_diary_write_rescue.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_directory_lease.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_disabled_toolsets_seam.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_discovery_survives_unbuildable_default.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_document_markdown_tables.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_document_renderers_hr_quote.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_durable_toolsets.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_durable_write_discipline.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_e2e_tool_calls_idempotency_lmstudio.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_effect_cancellation.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_effect_issuance_idempotency.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_effect_payload_stays_json_serializable.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_election_consequence_teaching.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_emergence_experiment.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_emit_event_uses_wait_index.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_emit_event_without_workflow_registry.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_endpoint_profile_route_context.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_awake_memory_fixes.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_brain_effects.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_chat_driver.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_chat_tools_reflection.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_diary.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_execute_tool.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_fetch_url_tool.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_life_loop.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_memory_richness.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_phase_graph_conformance.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_recent_memories.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_runtime.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_search_memory.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_sleep_bound_and_yield_attribution.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_substrate_resolution.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_visit_honesty.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_workspace_cap.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_entity_workspace_tools.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_event_wait_index.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_every_path_bearing_tool_is_walled.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_evidence_recorder.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_evidence_recorder_post_policy_envelope.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_execute_command_output_offload.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_execution_capability_discovery.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_factory_default_retry_policy.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_factory_timeouts_default_to_abstractcore_config.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_format_repair_nudge.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_fresh_install_no_provider.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_gateway_facades_c4899.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_git_read_only_refiner.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_hot_path_store_reads.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_indexed_idempotency_lookup.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_integration_abstractcore.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_integrations_abstractcore.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_json_file_run_store_children_index.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_json_run_cache_bound.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_json_store_scan_memo.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_jsonl_ledger_recovery.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_kg_learn_and_recall_contract.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_ledger_chain.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_ledger_record_slimming.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_ledger_subscription.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_media_artifact_refs.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_media_artifact_refs_persist_across_restart.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_media_uses_source_path_label.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_payload_shape_refusal.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_requires_prompt.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_response_schema_normalization.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_structured_output_fallback.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_text_phase_progress.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_truncation_retry_contract.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_use_context_appends_turn.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_call_verbatim_payload_capture.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_client_grounding_tail.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_client_media_artifacts.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_client_system_context.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_client_tool_call_parsing.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_retry_classification.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_llm_streaming_on_token.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_local_helper_tool_exposure.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_local_residency_host_sweep.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_local_runtime_timeout_kwarg_policy.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_max_iterations_ceiling.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_mcp_remote_tool_executor.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_mcp_worker_logging.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_mcp_worker_security.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_mcp_worker_stdio.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_media_artifact_resolution.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_media_capability_default_routing.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_media_subprocess.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memact_composer_from_kg_result.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_appraise_handler.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_communities.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_kg_assert_attributes_defaults.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_kg_packets.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_kg_predicate_aliasing.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_kg_query_packetization_restart.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_kg_query_recall_level_policy.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_kg_semantic_query_ranking.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_note_effect.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_query_effect.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_query_rich_filters.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_scope_and_rehydrate_effect.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_seam_handlers.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_seam_sqlite_durability.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_memory_tag_effect.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_mlx_generation_serialization.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_model_eject_cancel.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_model_residency_control_plane.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_model_residency_lock_and_context_estimate.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_multi_store_scheduler.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_multimodal_abstractcore_integration.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_native_mlx_application_wiring.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_native_mlx_execution_controls_live.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_native_tool_channel.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_night_voice.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_no_default_provider_refusal_ux.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_offload_answer_chain_c4978.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_offloaded_node_traces_report_unknown_not_zero.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_offloading.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_parallel_readonly_tool_execution.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_pause_resume.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_pdf_unicode_rendering.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_personal_cycle.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_phantom_attachment_index.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_phase_graph_artifact_control.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_phase_graph_obedience.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_phase_vocabulary_migration.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_pooled_client_strips_construction_cache_key.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_prompt_cache_export_import.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_prompt_cache_fingerprint_stability.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_prompt_cache_modules.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_prompt_cache_posture_inheritance.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_prompt_cache_thinking_and_prompt_only.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_prompt_overlay.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_provider_endpoint_profile_resolution.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_provider_pin_routing_isolation.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_queryable_run_store.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_read_file_fallback_to_session_attachments.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_read_idle_threading.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_readoption_experiment.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_real_integration.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_realize_election.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_recall_levels_policy.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_remote_client_cancel.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_remote_llm_client.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_remote_speculation_defaults.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_rendering_agent_trace_report.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_rendering_json_stringify.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_report_branding.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_retry_idempotency.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_run_history_bundle.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_run_scoped_tool_policy.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_run_tool_scope_ceiling.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_browser_session_boundary.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_config_max_output_tokens_fallback.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_default_provider_model_refresh.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_effect_invocation_trace.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_health_and_bounded_vars.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_install_boundary.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_llm_call_grounding_in_ledger.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_node_traces.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_start_seeds_tool_support.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_runtime_tick_step_gate.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_scheduler.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_send_email_refiner.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_session_attachments_registry_and_open_tool.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_session_history.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_session_prompt_cache_attribution.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_session_prompt_cache_visibility.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_session_route_stamp.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_shell_tool_exposure.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_snapshots.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_speculation_inheritance.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_speculation_reaches_provider_construction.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_sqlite_ledger_store.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_start_subworkflow_async_wait.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_start_subworkflow_inherit_context_merges_messages.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_start_subworkflow_workspace_inheritance.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_steer_sidecar.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_storage_deletion.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_structured_output_schema_enum.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_subworkflow.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_terminal_effect_completion.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_terminal_resume_appends_ledger_completion.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_thinking_inheritance.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tick_completion_includes_output_in_ledger.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_approval_executor.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_approval_resume_executes.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_approval_wait_key_identity.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_calls_idempotency_keys.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_catalog.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_descriptor_registry.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_executor_argument_sanitization.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_executor_error_output_detection.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_executor_filename_alias.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_executor_kwarg_canonicalization.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_executor_read_file_aliases.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_executor_timeout.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_inventory_facade.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_invoke_effect.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_policy_and_mounts.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_tool_wait_allowlist_safety.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_topic_election_world_model.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_trace_context_propagation.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_turn_grounding_byte_stability.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_turn_grounding_carriers_a3.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_vars_query_effect.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visit_ab_fixture.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visit_history_replay_caps.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visit_midturn_elections.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visit_midturn_resume.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visit_workflow.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_agent_output_context_includes_messages.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_agent_skills_block_passthrough.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_agent_tool_observations_persist_across_restart.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_agent_use_context_inherits_attachments.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_agent_use_context_persists_tool_observations.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_agent_use_context_persists_turn.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_entity_memory_nodes.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_flow_end_effect_only_persistence.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_llm_call_partial_override.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_llm_call_schema_ref_resolution.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_memact_compose_node.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_memory_kg_query_outputs_propagate.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_memory_kg_resolve_outputs_propagate.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_multi_entry_loop_overrides.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_unknown_node_type_refuses.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visual_wait_event_deadline_passthrough.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_add_message_builtin.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_add_message_node_appends_to_active_context.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_agora_react_agent.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_call_tool_node.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_capability_routes_and_thinking.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_compiler_basic.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_context_and_builder_nodes.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_continue_on_error.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_edit_json_schema_node.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_event_inbox_react_agent.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_file_nodes_workspace.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_function_library.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_get_element_node.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_get_random_element_node.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_get_var_node.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_has_tools_builtin.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_llm_call_context_attachments_map_to_media.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_llm_call_multimodal_output.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_make_object_node.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_media_nodes.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_memory_effect_nodes.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_memory_source_pins.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_pin_expressions.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_prompt_only.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_random_nodes.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_schema_enum_switch.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_string_contains_replace.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_visualflow_tool_parameters_node.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_w4_feelings_lens.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_wait_event_deadline.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_wait_event_prompt_metadata.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_wait_until_streak.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_wait_until_utc_normalization.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_workflow_bundle_registry.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_workspace_policy_absolute_reanchor.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_workspace_policy_allowlist_mode.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_workspace_policy_mount_virtual_paths.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_workspace_policy_tool_calls_persist_across_restart.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_workspace_prompt_context.py +0 -0
- {abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_write_chart.py +0 -0
|
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.4.34] - 2026-09-24
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- `config_facade.host_job_cancel(job_id, *, by="api", user=None)` passes who asked for a cancel to
|
|
15
|
+
AbstractCore (needs AbstractCore with `HostJobRegistry.cancel(by=, user=)`), so a cancelled
|
|
16
|
+
download can say who cancelled it.
|
|
17
|
+
- The AbstractCore floor is now 2.15.1 in the base install and in the `apple`
|
|
18
|
+
and `gpu` extras (the release whose host-job cancel takes `by` and `user`).
|
|
19
|
+
|
|
10
20
|
## [0.4.33] - 2026-09-23
|
|
11
21
|
|
|
12
22
|
### Added
|
|
@@ -855,7 +865,8 @@ AbstractRuntime is the durable execution substrate designed to pair with Abstrac
|
|
|
855
865
|
|
|
856
866
|
Initial development version with basic proof-of-concept features.
|
|
857
867
|
|
|
858
|
-
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.4.
|
|
868
|
+
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.4.34...HEAD
|
|
869
|
+
[0.4.34]: https://github.com/lpalbou/abstractruntime/compare/v0.4.33...v0.4.34
|
|
859
870
|
[0.4.33]: https://github.com/lpalbou/abstractruntime/compare/v0.4.32...v0.4.33
|
|
860
871
|
[0.4.32]: https://github.com/lpalbou/abstractruntime/compare/v0.4.29...v0.4.32
|
|
861
872
|
[0.4.31]: https://github.com/lpalbou/abstractruntime/compare/v0.4.29...v0.4.31
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: AbstractRuntime
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.34
|
|
4
4
|
Summary: AbstractRuntime: a durable graph runner designed to pair with AbstractCore.
|
|
5
5
|
Project-URL: AbstractCore (website), https://www.abstractcore.ai/
|
|
6
6
|
Project-URL: AbstractRuntime (GitHub), https://github.com/lpalbou/abstractruntime
|
|
@@ -20,7 +20,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
22
|
Requires-Python: >=3.10
|
|
23
|
-
Requires-Dist: abstractcore[audio,music,remote,tools,vision,voice]>=2.
|
|
23
|
+
Requires-Dist: abstractcore[audio,music,remote,tools,vision,voice]>=2.15.1
|
|
24
24
|
Requires-Dist: abstractmemory>=0.3.0
|
|
25
25
|
Requires-Dist: abstractsemantics>=0.0.5
|
|
26
26
|
Requires-Dist: anyio<5.0.0,>=4.12.1
|
|
@@ -35,14 +35,14 @@ Requires-Dist: reportlab<5.0.0,>=4.0.0
|
|
|
35
35
|
Requires-Dist: restrictedpython>=7.0
|
|
36
36
|
Requires-Dist: unstructured[docx,odt,pptx,rtf,xlsx]<0.19.0,>=0.18.32
|
|
37
37
|
Provides-Extra: apple
|
|
38
|
-
Requires-Dist: abstractcore[all-apple]>=2.
|
|
38
|
+
Requires-Dist: abstractcore[all-apple]>=2.15.1; extra == 'apple'
|
|
39
39
|
Requires-Dist: setuptools<82.0.0,>=80.10.2; extra == 'apple'
|
|
40
40
|
Provides-Extra: docs
|
|
41
41
|
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
|
|
42
42
|
Requires-Dist: mkdocs>=1.6.0; extra == 'docs'
|
|
43
43
|
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
|
|
44
44
|
Provides-Extra: gpu
|
|
45
|
-
Requires-Dist: abstractcore[all-gpu]>=2.
|
|
45
|
+
Requires-Dist: abstractcore[all-gpu]>=2.15.1; extra == 'gpu'
|
|
46
46
|
Requires-Dist: setuptools<82.0.0,>=77.0.3; extra == 'gpu'
|
|
47
47
|
Provides-Extra: test
|
|
48
48
|
Requires-Dist: pytest>=7.0.0; extra == 'test'
|
|
@@ -54,7 +54,7 @@ Description-Content-Type: text/markdown
|
|
|
54
54
|
|
|
55
55
|
It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
|
|
56
56
|
|
|
57
|
-
**Version:** 0.4.
|
|
57
|
+
**Version:** 0.4.34 • **Python:** 3.10+
|
|
58
58
|
|
|
59
59
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
60
60
|
|
|
@@ -82,7 +82,7 @@ Remote-light runtime:
|
|
|
82
82
|
pip install abstractruntime
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
The base install includes AbstractCore 2.
|
|
85
|
+
The base install includes AbstractCore 2.15.1 or newer with remote provider,
|
|
86
86
|
tool, vision, voice, audio, and music integration, plus the
|
|
87
87
|
`abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
|
|
88
88
|
default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
|
|
@@ -146,7 +146,7 @@ state = rt.resume(
|
|
|
146
146
|
assert state.status.value == "completed"
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
## What’s included (v0.4.
|
|
149
|
+
## What’s included (v0.4.34)
|
|
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.4.
|
|
7
|
+
**Version:** 0.4.34 • **Python:** 3.10+
|
|
8
8
|
|
|
9
9
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
10
10
|
|
|
@@ -32,7 +32,7 @@ Remote-light runtime:
|
|
|
32
32
|
pip install abstractruntime
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
The base install includes AbstractCore 2.
|
|
35
|
+
The base install includes AbstractCore 2.15.1 or newer with remote provider,
|
|
36
36
|
tool, vision, voice, audio, and music integration, plus the
|
|
37
37
|
`abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
|
|
38
38
|
default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
|
|
@@ -96,7 +96,7 @@ state = rt.resume(
|
|
|
96
96
|
assert state.status.value == "completed"
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
## What’s included (v0.4.
|
|
99
|
+
## What’s included (v0.4.34)
|
|
100
100
|
|
|
101
101
|
Kernel (import-light):
|
|
102
102
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -216,7 +216,7 @@ from Core route resolution and persisted from `LLM_CALL` results.
|
|
|
216
216
|
|
|
217
217
|
### AbstractCore (LLM + tools)
|
|
218
218
|
|
|
219
|
-
Requires: `pip install abstractruntime` (AbstractCore 2.
|
|
219
|
+
Requires: `pip install abstractruntime` (AbstractCore 2.15.1 or newer is part of the base install).
|
|
220
220
|
|
|
221
221
|
Implementation: `src/abstractruntime/integrations/abstractcore/*`.
|
|
222
222
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# AbstractRuntime — Architecture
|
|
2
2
|
|
|
3
3
|
> Updated: 2026-08-27
|
|
4
|
-
> Version: 0.4.
|
|
4
|
+
> Version: 0.4.34
|
|
5
5
|
> Scope: this describes **what is implemented in this repository**.
|
|
6
6
|
|
|
7
7
|
AbstractRuntime is a **durable workflow runtime**: it executes workflow graphs as a persisted state machine with explicit waits (user, time, events, jobs, subworkflows). A run can pause for hours/days and resume **without** keeping Python stacks/coroutines alive.
|
|
@@ -12,7 +12,7 @@ Remote-light runtime:
|
|
|
12
12
|
pip install abstractruntime
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
This installs AbstractCore 2.
|
|
15
|
+
This installs AbstractCore 2.15.1 or newer with remote provider, vision,
|
|
16
16
|
voice, audio, music, tool, and MCP-worker support. The base install is
|
|
17
17
|
remote-light: it can route multimodal workflows to hosted or OpenAI-compatible
|
|
18
18
|
endpoints, but it does not select local inferencer stacks such as MLX, vLLM,
|
|
@@ -16,7 +16,7 @@ Implementation pointers (this repo):
|
|
|
16
16
|
pip install abstractruntime
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
The base install includes AbstractCore 2.
|
|
19
|
+
The base install includes AbstractCore 2.15.1 or newer. That is the supported baseline for the current server auth split (`Authorization` for server auth, `X-AbstractCore-Provider-API-Key` for provider overrides), generated-media contracts, image upscaling, capability catalog, prompt-cache control-plane endpoints (including session attribution via `/acore/prompt_cache/key_meta`), host memory snapshots, the host-wide loaded-model sweep used by residency listings, durable bloc prompt-cache helpers, bindings and lifecycle operations, task-aware model residency for text/image/video/TTS/STT, current tool catalog, AbstractCore's public output-selector contract, async/sync text-generation output-selector parity, video generation endpoints, the public local vision-cache catalog helper used by Runtime discovery, vision adapter discovery plus batch/LoRA media controls, and the released shared workspace/file-filter utility surface used by Runtime packaging and integration checks.
|
|
20
20
|
|
|
21
21
|
The base install also includes the remote-light media/capability plugins needed
|
|
22
22
|
for AbstractCore's multimodal `generate(..., output=...)` path. Local
|
|
@@ -689,7 +689,7 @@ without importing AbstractCore itself.
|
|
|
689
689
|
| `delete_model_artifact(provider, artifact, dry_run=False, force=False)` | a `host_job_v1` job of kind `delete` |
|
|
690
690
|
| `start_model_download_job(provider, artifact, dry_run=False)` | a `host_job_v1` job of kind `download` (single-flight per artifact) |
|
|
691
691
|
| `host_jobs_list(kind=None, status=None)` | `{"schema": "host_jobs_v1", "jobs": [...]}`, newest first, including jobs started by other processes on the host |
|
|
692
|
-
| `host_job(job_id)` / `host_job_cancel(job_id)` | one job, or `None` when the id is unknown |
|
|
692
|
+
| `host_job(job_id)` / `host_job_cancel(job_id, *, by="api", user=None)` | one job, or `None` when the id is unknown; a cancel records `by` (`api`, `console`) and the signed-in `user` on the job (`cancelled_by`, `cancelled_by_user`, `ended_reason`; AbstractCore 2.15.1+) |
|
|
693
693
|
| `console_fragment(kind)` | AbstractCore's embeddable web screen (`models` or `engines`): `{"html", "js", "css"}` |
|
|
694
694
|
| `models_engines_support()` | `{"available", "abstractcore_version", "required", "missing"}`; never raises |
|
|
695
695
|
|
|
@@ -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.15.1`.
|
|
24
24
|
|
|
25
25
|
Verify:
|
|
26
26
|
|
|
@@ -13,7 +13,7 @@ It is generated from `llms.txt` in first-link order, de-duplicated, with repo-ro
|
|
|
13
13
|
|
|
14
14
|
It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
|
|
15
15
|
|
|
16
|
-
**Version:** 0.4.
|
|
16
|
+
**Version:** 0.4.34 • **Python:** 3.10+
|
|
17
17
|
|
|
18
18
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
19
19
|
|
|
@@ -41,7 +41,7 @@ Remote-light runtime:
|
|
|
41
41
|
pip install abstractruntime
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
The base install includes AbstractCore 2.
|
|
44
|
+
The base install includes AbstractCore 2.15.1 or newer with remote provider,
|
|
45
45
|
tool, vision, voice, audio, and music integration, plus the
|
|
46
46
|
`abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
|
|
47
47
|
default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
|
|
@@ -105,7 +105,7 @@ state = rt.resume(
|
|
|
105
105
|
assert state.status.value == "completed"
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
## What’s included (v0.4.
|
|
108
|
+
## What’s included (v0.4.34)
|
|
109
109
|
|
|
110
110
|
Kernel (import-light):
|
|
111
111
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -235,7 +235,7 @@ Remote-light runtime:
|
|
|
235
235
|
pip install abstractruntime
|
|
236
236
|
```
|
|
237
237
|
|
|
238
|
-
This installs AbstractCore 2.
|
|
238
|
+
This installs AbstractCore 2.15.1 or newer with remote provider, vision,
|
|
239
239
|
voice, audio, music, tool, and MCP-worker support. The base install is
|
|
240
240
|
remote-light: it can route multimodal workflows to hosted or OpenAI-compatible
|
|
241
241
|
endpoints, but it does not select local inferencer stacks such as MLX, vLLM,
|
|
@@ -594,7 +594,7 @@ from Core route resolution and persisted from `LLM_CALL` results.
|
|
|
594
594
|
|
|
595
595
|
### AbstractCore (LLM + tools)
|
|
596
596
|
|
|
597
|
-
Requires: `pip install abstractruntime` (AbstractCore 2.
|
|
597
|
+
Requires: `pip install abstractruntime` (AbstractCore 2.15.1 or newer is part of the base install).
|
|
598
598
|
|
|
599
599
|
Implementation: `src/abstractruntime/integrations/abstractcore/*`.
|
|
600
600
|
|
|
@@ -684,7 +684,7 @@ This provides handlers for `MEMORY_KG_*` effects (opt-in wiring layer).
|
|
|
684
684
|
# AbstractRuntime — Architecture
|
|
685
685
|
|
|
686
686
|
> Updated: 2026-08-27
|
|
687
|
-
> Version: 0.4.
|
|
687
|
+
> Version: 0.4.34
|
|
688
688
|
> Scope: this describes **what is implemented in this repository**.
|
|
689
689
|
|
|
690
690
|
AbstractRuntime is a **durable workflow runtime**: it executes workflow graphs as a persisted state machine with explicit waits (user, time, events, jobs, subworkflows). A run can pause for hours/days and resume **without** keeping Python stacks/coroutines alive.
|
|
@@ -1357,7 +1357,7 @@ Fix:
|
|
|
1357
1357
|
- Install or upgrade the base Runtime package. LLM/tools integration, common
|
|
1358
1358
|
remote-light multimodal dependencies, and the MCP worker entry point are part
|
|
1359
1359
|
of the base install.
|
|
1360
|
-
- The current AbstractCore integration expects `abstractcore>=2.
|
|
1360
|
+
- The current AbstractCore integration expects `abstractcore>=2.15.1`.
|
|
1361
1361
|
|
|
1362
1362
|
Verify:
|
|
1363
1363
|
|
|
@@ -1832,7 +1832,7 @@ Implementation pointers (this repo):
|
|
|
1832
1832
|
pip install abstractruntime
|
|
1833
1833
|
```
|
|
1834
1834
|
|
|
1835
|
-
The base install includes AbstractCore 2.
|
|
1835
|
+
The base install includes AbstractCore 2.15.1 or newer. That is the supported baseline for the current server auth split (`Authorization` for server auth, `X-AbstractCore-Provider-API-Key` for provider overrides), generated-media contracts, image upscaling, capability catalog, prompt-cache control-plane endpoints (including session attribution via `/acore/prompt_cache/key_meta`), host memory snapshots, the host-wide loaded-model sweep used by residency listings, durable bloc prompt-cache helpers, bindings and lifecycle operations, task-aware model residency for text/image/video/TTS/STT, current tool catalog, AbstractCore's public output-selector contract, async/sync text-generation output-selector parity, video generation endpoints, the public local vision-cache catalog helper used by Runtime discovery, vision adapter discovery plus batch/LoRA media controls, and the released shared workspace/file-filter utility surface used by Runtime packaging and integration checks.
|
|
1836
1836
|
|
|
1837
1837
|
The base install also includes the remote-light media/capability plugins needed
|
|
1838
1838
|
for AbstractCore's multimodal `generate(..., output=...)` path. Local
|
|
@@ -2505,7 +2505,7 @@ without importing AbstractCore itself.
|
|
|
2505
2505
|
| `delete_model_artifact(provider, artifact, dry_run=False, force=False)` | a `host_job_v1` job of kind `delete` |
|
|
2506
2506
|
| `start_model_download_job(provider, artifact, dry_run=False)` | a `host_job_v1` job of kind `download` (single-flight per artifact) |
|
|
2507
2507
|
| `host_jobs_list(kind=None, status=None)` | `{"schema": "host_jobs_v1", "jobs": [...]}`, newest first, including jobs started by other processes on the host |
|
|
2508
|
-
| `host_job(job_id)` / `host_job_cancel(job_id)` | one job, or `None` when the id is unknown |
|
|
2508
|
+
| `host_job(job_id)` / `host_job_cancel(job_id, *, by="api", user=None)` | one job, or `None` when the id is unknown; a cancel records `by` (`api`, `console`) and the signed-in `user` on the job (`cancelled_by`, `cancelled_by_user`, `ended_reason`; AbstractCore 2.15.1+) |
|
|
2509
2509
|
| `console_fragment(kind)` | AbstractCore's embeddable web screen (`models` or `engines`): `{"html", "js", "css"}` |
|
|
2510
2510
|
| `models_engines_support()` | `{"available", "abstractcore_version", "required", "missing"}`; never raises |
|
|
2511
2511
|
|
|
@@ -3645,6 +3645,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
3645
3645
|
|
|
3646
3646
|
## [Unreleased]
|
|
3647
3647
|
|
|
3648
|
+
## [0.4.34] - 2026-09-24
|
|
3649
|
+
|
|
3650
|
+
### Changed
|
|
3651
|
+
|
|
3652
|
+
- `config_facade.host_job_cancel(job_id, *, by="api", user=None)` passes who asked for a cancel to
|
|
3653
|
+
AbstractCore (needs AbstractCore with `HostJobRegistry.cancel(by=, user=)`), so a cancelled
|
|
3654
|
+
download can say who cancelled it.
|
|
3655
|
+
- The AbstractCore floor is now 2.15.1 in the base install and in the `apple`
|
|
3656
|
+
and `gpu` extras (the release whose host-job cancel takes `by` and `user`).
|
|
3657
|
+
|
|
3648
3658
|
## [0.4.33] - 2026-09-23
|
|
3649
3659
|
|
|
3650
3660
|
### Added
|
|
@@ -4491,7 +4501,8 @@ AbstractRuntime is the durable execution substrate designed to pair with Abstrac
|
|
|
4491
4501
|
|
|
4492
4502
|
Initial development version with basic proof-of-concept features.
|
|
4493
4503
|
|
|
4494
|
-
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.4.
|
|
4504
|
+
[Unreleased]: https://github.com/lpalbou/abstractruntime/compare/v0.4.34...HEAD
|
|
4505
|
+
[0.4.34]: https://github.com/lpalbou/abstractruntime/compare/v0.4.33...v0.4.34
|
|
4495
4506
|
[0.4.33]: https://github.com/lpalbou/abstractruntime/compare/v0.4.32...v0.4.33
|
|
4496
4507
|
[0.4.32]: https://github.com/lpalbou/abstractruntime/compare/v0.4.29...v0.4.32
|
|
4497
4508
|
[0.4.31]: https://github.com/lpalbou/abstractruntime/compare/v0.4.29...v0.4.31
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
> Durable workflow runtime (interrupt → checkpoint → resume) with an append-only execution ledger.
|
|
4
4
|
|
|
5
5
|
- Python: 3.10+ (see `pyproject.toml`)
|
|
6
|
-
- Version: 0.4.
|
|
6
|
+
- Version: 0.4.34
|
|
7
7
|
- Ecosystem: [AbstractFramework](https://github.com/lpalbou/AbstractFramework) umbrella, integrates with [AbstractCore](https://github.com/lpalbou/abstractcore)
|
|
8
8
|
- Hard invariant: `RunState.vars` must be JSON-serializable (`src/abstractruntime/core/models.py`)
|
|
9
|
-
- Current AbstractCore baseline: base `abstractruntime` installs `abstractcore[remote,tools,vision,voice,audio,music]>=2.
|
|
9
|
+
- Current AbstractCore baseline: base `abstractruntime` installs `abstractcore[remote,tools,vision,voice,audio,music]>=2.15.1`
|
|
10
10
|
- Install profiles: base `abstractruntime` is remote-light with MCP, generated media routing, and Runtime-owned permissive PDF read/write nodes; `abstractruntime[apple]` and `abstractruntime[gpu]` add local inferencer stacks.
|
|
11
11
|
- Config boundary: Runtime does not read `ABSTRACTGATEWAY_*`; Gateway-owned config should be translated into explicit Runtime inputs or Runtime-owned env names. Hosts can attach `resolve_provider_endpoint_profile(provider_id)` to the LLM client; Runtime treats it as an optional resolver hook, injects transient provider/base URL/key params for the call, and redacts secret-like params from persisted observability.
|
|
12
12
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "AbstractRuntime"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.34"
|
|
8
8
|
description = "AbstractRuntime: a durable graph runner designed to pair with AbstractCore."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -50,7 +50,7 @@ dependencies = [
|
|
|
50
50
|
# Runtime's base install is the remote-light workflow host: LLM/tool effects,
|
|
51
51
|
# MCP worker support, and multimodal routing are available without selecting
|
|
52
52
|
# local inference engines.
|
|
53
|
-
"abstractcore[remote,tools,vision,voice,audio,music]>=2.
|
|
53
|
+
"abstractcore[remote,tools,vision,voice,audio,music]>=2.15.1",
|
|
54
54
|
"openai<2.0.0,>=1.109.1",
|
|
55
55
|
"httpx<1.0.0,>=0.28.1",
|
|
56
56
|
"anyio<5.0.0,>=4.12.1",
|
|
@@ -67,12 +67,12 @@ dependencies = [
|
|
|
67
67
|
|
|
68
68
|
[project.optional-dependencies]
|
|
69
69
|
apple = [
|
|
70
|
-
"abstractcore[all-apple]>=2.
|
|
70
|
+
"abstractcore[all-apple]>=2.15.1",
|
|
71
71
|
"setuptools<82.0.0,>=80.10.2",
|
|
72
72
|
]
|
|
73
73
|
|
|
74
74
|
gpu = [
|
|
75
|
-
"abstractcore[all-gpu]>=2.
|
|
75
|
+
"abstractcore[all-gpu]>=2.15.1",
|
|
76
76
|
# vLLM 0.9-0.19 caps setuptools below 80; 77.0.3 is still a modern floor.
|
|
77
77
|
"setuptools<82.0.0,>=77.0.3",
|
|
78
78
|
]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
### Changed
|
|
2
|
+
|
|
3
|
+
- `config_facade.host_job_cancel(job_id, *, by="api", user=None)` passes who asked for a cancel to
|
|
4
|
+
AbstractCore (needs AbstractCore with `HostJobRegistry.cancel(by=, user=)`), so a cancelled
|
|
5
|
+
download can say who cancelled it.
|
|
6
|
+
- The AbstractCore floor is now 2.15.1 in the base install and in the `apple`
|
|
7
|
+
and `gpu` extras (the release whose host-job cancel takes `by` and `user`).
|
|
@@ -987,18 +987,23 @@ def host_job(job_id: str) -> Optional[Dict[str, Any]]:
|
|
|
987
987
|
return dict(job) if job is not None else None
|
|
988
988
|
|
|
989
989
|
|
|
990
|
-
def host_job_cancel(job_id: str) -> Optional[Dict[str, Any]]:
|
|
990
|
+
def host_job_cancel(job_id: str, *, by: str = "api", user: Optional[str] = None) -> Optional[Dict[str, Any]]:
|
|
991
991
|
"""Cancel a job (terminates its process tree); `None` when the id is unknown.
|
|
992
992
|
|
|
993
|
+
`by` says who asked (`api`, or `console` when a person clicked Cancel in
|
|
994
|
+
a console) and `user` the signed-in account: AbstractCore records both on
|
|
995
|
+
the job (`cancelled_by`, `cancelled_by_user`, `ended_reason`), so a
|
|
996
|
+
cancelled download can say who cancelled it.
|
|
997
|
+
|
|
993
998
|
A job owned by another process on this host is cancelled through its
|
|
994
999
|
persisted cancel marker, which that process honours at its next check.
|
|
995
1000
|
"""
|
|
996
1001
|
|
|
997
1002
|
host_jobs = _core_module("config.host_jobs", "Host jobs")
|
|
998
1003
|
registry = host_jobs.default_registry()
|
|
999
|
-
job = registry.cancel(str(job_id))
|
|
1004
|
+
job = registry.cancel(str(job_id), by=by, user=user)
|
|
1000
1005
|
if job is None and registry.persist_dir is not None:
|
|
1001
|
-
job = host_jobs.request_cancel(str(job_id), registry.persist_dir)
|
|
1006
|
+
job = host_jobs.request_cancel(str(job_id), registry.persist_dir, by=by, user=user)
|
|
1002
1007
|
return dict(job) if job is not None else None
|
|
1003
1008
|
|
|
1004
1009
|
|
{abstractruntime-0.4.33 → abstractruntime-0.4.34}/tests/test_config_facade_models_engines.py
RENAMED
|
@@ -76,6 +76,7 @@ class FakeRegistry:
|
|
|
76
76
|
self.persist_dir = persist_dir
|
|
77
77
|
self.jobs: Dict[str, Dict[str, Any]] = {}
|
|
78
78
|
self.cancelled: List[str] = []
|
|
79
|
+
self.cancel_by: List[Any] = []
|
|
79
80
|
|
|
80
81
|
def list(self) -> List[Dict[str, Any]]:
|
|
81
82
|
return list(self.jobs.values())
|
|
@@ -83,7 +84,8 @@ class FakeRegistry:
|
|
|
83
84
|
def get(self, job_id: str) -> Optional[Dict[str, Any]]:
|
|
84
85
|
return self.jobs.get(job_id)
|
|
85
86
|
|
|
86
|
-
def cancel(self, job_id: str) -> Optional[Dict[str, Any]]:
|
|
87
|
+
def cancel(self, job_id: str, *, by: str = "api", user: Optional[str] = None) -> Optional[Dict[str, Any]]:
|
|
88
|
+
self.cancel_by.append((job_id, by, user))
|
|
87
89
|
job = self.jobs.get(job_id)
|
|
88
90
|
if job is None:
|
|
89
91
|
return None
|
|
@@ -196,7 +198,7 @@ def fake_core(monkeypatch: pytest.MonkeyPatch) -> types.SimpleNamespace:
|
|
|
196
198
|
jobs_mod.start_download_job = start_download_job
|
|
197
199
|
jobs_mod.read_persisted_jobs = lambda directory: list(persisted.values())
|
|
198
200
|
jobs_mod.read_persisted_job = lambda job_id, directory: persisted.get(job_id)
|
|
199
|
-
jobs_mod.request_cancel = lambda job_id, directory: (dict(persisted[job_id], cancel_requested=True) if job_id in persisted else None)
|
|
201
|
+
jobs_mod.request_cancel = lambda job_id, directory, by="other_process", user=None: (dict(persisted[job_id], cancel_requested=True, cancelled_by=by, cancelled_by_user=user) if job_id in persisted else None)
|
|
200
202
|
|
|
201
203
|
web_mod = types.ModuleType("abstractcore.console.web")
|
|
202
204
|
|
|
@@ -391,6 +393,11 @@ def test_jobs_list_merges_persisted_and_live_jobs_newest_first(fake_core, tmp_pa
|
|
|
391
393
|
assert fake_core.registry.cancelled == ["eng_new"]
|
|
392
394
|
assert facade.host_job_cancel("dl_old")["cancel_requested"] is True # another process's job
|
|
393
395
|
assert facade.host_job_cancel("unknown") is None
|
|
396
|
+
# Who asked travels to AbstractCore (mission KK): the default is `api`; a
|
|
397
|
+
# console click says `console` and names the signed-in account.
|
|
398
|
+
assert fake_core.registry.cancel_by[0] == ("eng_new", "api", None)
|
|
399
|
+
moved = facade.host_job_cancel("dl_old", by="console", user="admin")
|
|
400
|
+
assert (moved["cancelled_by"], moved["cancelled_by_user"]) == ("console", "admin")
|
|
394
401
|
|
|
395
402
|
|
|
396
403
|
def test_jobs_without_persistence_read_only_the_live_registry(fake_core) -> None:
|
|
@@ -50,7 +50,7 @@ def test_runtime_base_is_remote_light_with_multimodal_and_mcp_support() -> None:
|
|
|
50
50
|
assert "abstractcore = [" not in text
|
|
51
51
|
assert "multimodal = [" not in text
|
|
52
52
|
assert "mcp-worker = [" not in text
|
|
53
|
-
assert '"abstractcore[remote,tools,vision,voice,audio,music]>=2.
|
|
53
|
+
assert '"abstractcore[remote,tools,vision,voice,audio,music]>=2.15.1"' in text
|
|
54
54
|
assert '"openai<2.0.0,>=1.109.1"' in text
|
|
55
55
|
assert '"httpx<1.0.0,>=0.28.1"' in text
|
|
56
56
|
assert '"anyio<5.0.0,>=4.12.1"' in text
|
|
@@ -85,8 +85,8 @@ def test_runtime_exposes_only_apple_and_gpu_user_install_profiles() -> None:
|
|
|
85
85
|
apple_block = _extract_optional_dependency_block(text, key="apple")
|
|
86
86
|
gpu_block = _extract_optional_dependency_block(text, key="gpu")
|
|
87
87
|
|
|
88
|
-
assert '"abstractcore[all-apple]>=2.
|
|
89
|
-
assert '"abstractcore[all-gpu]>=2.
|
|
88
|
+
assert '"abstractcore[all-apple]>=2.15.1"' in apple_block
|
|
89
|
+
assert '"abstractcore[all-gpu]>=2.15.1"' in gpu_block
|
|
90
90
|
assert '"setuptools<82.0.0,>=80.10.2"' in apple_block
|
|
91
91
|
assert '"setuptools<82.0.0,>=77.0.3"' in gpu_block
|
|
92
92
|
assert "pymupdf" not in apple_block.lower()
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
### Added
|
|
2
|
-
- **Models and engines for hosts.** `config_facade` passes AbstractCore's
|
|
3
|
-
models and engines features through to hosts, so the Gateway can offer the
|
|
4
|
-
same model browser and engine installer as `abstractcore models` and
|
|
5
|
-
`abstractcore engines` without importing AbstractCore:
|
|
6
|
-
`host_profile`, `engine_inventory`, `engine_status`,
|
|
7
|
-
`engine_install_plan`, `engine_download_url`, `engine_install`,
|
|
8
|
-
`model_catalog`, `list_installed_models`, `model_delete_blockers`,
|
|
9
|
-
`delete_model_artifact`, `start_model_download_job`, `host_jobs_list`,
|
|
10
|
-
`host_job`, `host_job_cancel` and `console_fragment`. Payloads are
|
|
11
|
-
AbstractCore's own (`host_profile_v1`, `engines_status_v1`,
|
|
12
|
-
`model_catalog_v1`, `models_installed_v1`, `host_job_v1`).
|
|
13
|
-
- `models_engines_support()` reports whether the installed AbstractCore has
|
|
14
|
-
these modules. It never raises.
|
|
15
|
-
- `AbstractCoreTooOld` (a `NotImplementedError`) is raised when the installed
|
|
16
|
-
AbstractCore predates these modules. The message names the installed
|
|
17
|
-
version and the upgrade command.
|
|
18
|
-
- `HostActionRefused` carries an HTTP status and a structured body for
|
|
19
|
-
refusals: engine installs not allowed, unknown engine, an install already
|
|
20
|
-
running, a delete blocked by a loaded or shared model. Hosts no longer need
|
|
21
|
-
AbstractCore's exception types to tell refusals apart.
|
|
22
|
-
|
|
23
|
-
### Changed
|
|
24
|
-
- The AbstractCore floor is now 2.14.0 in the base install and in the `apple`
|
|
25
|
-
and `gpu` extras.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/001_runtime_kernel.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.33 → abstractruntime-0.4.34}/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.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/004_scheduler_driver.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/006_snapshots_bookmarks.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/009_artifact_store.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/completed/011_subworkflow_support.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/001_runtime_kernel.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.33 → abstractruntime-0.4.34}/docs/backlog/deprecated/002_snapshots_bookmarks.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|