AbstractRuntime 0.10.0__tar.gz → 0.10.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/CHANGELOG.md +7 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/PKG-INFO +1 -1
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/api.md +2 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/architecture.md +4 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/llms-full.txt +6 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/pyproject.toml +1 -1
- abstractruntime-0.10.1/release-notes.md +4 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/json_files.py +371 -17
- abstractruntime-0.10.1/tests/test_active_index.py +400 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_json_store_scan_memo.py +16 -1
- abstractruntime-0.10.0/release-notes.md +0 -20
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/.github/workflows/ci.yml +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/.github/workflows/release.yml +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/.gitignore +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/ACKNOWLEDGMENTS.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/CODE_OF_CONDUCT.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/CONTRIBUTING.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/LICENSE +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/ROADMAP.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/SECURITY.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/adr/0001_layered_coupling_with_abstractcore.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/adr/0002_execution_modes_local_remote_hybrid.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/adr/0003_provenance_tamper_evident_hash_chain.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/adr/0004_runtime_owns_run_scoped_media_execution_truth.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/adr/0005_runtime_owns_abstractcore_host_discovery_queries.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/adr/0006_runtime_owns_durable_abstractcore_bloc_prompt_cache.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/adr/0007_runtime_relays_core_owned_model_residency_truth.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/adr/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/artifacts.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/automations.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/001_runtime_kernel.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0030_runtime_host_facades_for_comms_telegram_and_tool_specs.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0032_runtime_durable_outbound_comms_truth.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0033_runtime_host_local_prompt_cache_export_import_surface.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0035_model_residency_provider_truth_for_local_http_clients.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0037_visualflow_generate_music_node_compiler_parity.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0039_runtime_music_structure_prompt_bool_contract.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/003_wait_primitives.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0040_task_agnostic_local_residency_listing.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0041_runtime_hardware_extras_avoid_nonpermissive_document_stacks.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0042_core_vision_upscale_and_parameter_surface.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0043_runtime_vision_adapter_and_batch_surface.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/004_scheduler_driver.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/005_abstractcore_integration.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/006_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/007_provenance_hash_chain.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/009_artifact_store.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/010_examples_and_composition.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/011_subworkflow_support.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/012_run_store_query_and_scheduler_support.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/013_effect_retries_and_idempotency.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/016_runtime_aware_parameters.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/019_runtime_host_facade_for_core_operator_surfaces.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/020_runtime_gateway_install_boundary.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/021_runtime_gateway_env_namespace_cleanup.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/022_model_residency_control_plane.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/023_truthful_local_media_residency_boundaries.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/024_runtime_owned_run_scoped_media_execution.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/026_runtime_host_discovery_facade_for_core_catalogs.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/027_runtime_durable_bloc_prompt_cache_facade.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/028_runtime_bloc_kv_lifecycle_and_pruning.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/029_runtime_music_generation_and_discovery_via_abstractcore.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0846_mlx_instance_scheduling_and_execution_controls.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/completed/0847_automations_v1_controller_contracts_occurrences_triggers.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/001_integrations_abstractcore.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/001_runtime_kernel.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/002_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/0034_agent_runtime_convenience_constructor.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/003_provenance_ledger_chain.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/003_wait_resume_and_scheduler.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/004_effect_handlers_and_integrations.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/004_tests.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/005_docs_updates.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/005_examples_and_composition.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/006_ai_fingerprint_and_provenance.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/DEPRECATED_README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/deprecated/abstractruntime_docs_final_02a7373b.plan.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/0070_standalone_wui_browser_session_security_contract.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/008_signatures_and_keys.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/014_remote_tool_worker_executor.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/017_limit_warnings_and_observability.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/018_workspace_access_policy_for_media_and_tools.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/0233_real_run_cancellation.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/025_runtime_retention_and_purge_contract.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/026_context_checkpoint_self_compression.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/027_quote_provenance_discipline.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/028_selective_artifact_rehydration.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/0845_session_prompt_cache_resume_and_purge_contract.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/0848_automations_v2_external_event_inbox_and_run_triggers.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_portability/0065_portable_process_and_lock_layer.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_portability/0066_portable_io_and_media_reader.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_portability/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0044_meta_analysis_record.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0045_crash_replay_harness_and_ordering_invariant.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0046_per_run_driver_exclusion.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0047_indexed_idempotency_lookup.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0048_durable_io_unification.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0049_llm_client_mechanical_split.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0050_control_sidecar_all_writers.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0051_runtime_owned_durable_event_mailbox.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0052_sync_store_event_loop_tripwire.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0053_bounded_run_vars_growth.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0054_runtime_health_counters.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0055_jsonl_store_honesty.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0064_prompt_cache_fingerprint_stability.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0067_durable_write_discipline.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/0068_hot_path_store_reads.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/planned/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/0031_runtime_tool_spec_adapters_for_gateway_and_mcp.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/0036_local_media_residency_bridge_to_core_residency.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/0038_core_server_pool_residency_affinity.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/0069_document_renderer_professional_figures.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/runtime_systemic_reliability/0056_schema_version_and_quarantine_loading.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/runtime_systemic_reliability/0057_trust_boundary_stamp_registry.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/runtime_systemic_reliability/0058_terminal_run_archival_helper.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/runtime_systemic_reliability/0059_memory_span_handler_extraction.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/runtime_systemic_reliability/0060_visualflow_compiler_decomposition.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/runtime_systemic_reliability/0061_root_api_deprecation_machinery.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/runtime_systemic_reliability/0062_dependency_honesty_extras.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/runtime_systemic_reliability/0063_b3_envelope_lane_unification.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/backlog/proposed/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/email.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/entity-runtime.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/evidence.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/faq.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/getting-started.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/integrations/abstractcore.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/limits.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/manual_testing.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/mcp-worker.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/proposal.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/provenance.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/snapshots.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/tool-approval.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/tools-comms.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/troubleshooting.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/docs/workflow-bundles.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/examples/01_hello_world.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/examples/02_ask_user.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/examples/03_wait_until.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/examples/04_multi_step.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/examples/05_persistence.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/examples/06_llm_integration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/examples/07_react_agent.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/examples/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/llms.txt +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/mkdocs.yml +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/pytest.ini +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/scripts/backfill_diary_edges.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/scripts/generate_llms_full.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automation_queries.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/adapters.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/attention.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/bundle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/bundles/automation-controller/flows/controller.json +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/bundles/automation-controller/manifest.json +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/commands.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/controller.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/ledger.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/models.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/automations/service.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/config.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/effect_cancellation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/event_keys.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/health.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/live_deltas.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/models.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/progress_channel.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/run_attribution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/run_identity.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/run_lifecycle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/runtime.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/spec.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/tool_scope.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/core/vars.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/documents/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/documents/charts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/documents/docx.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/documents/pdf.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/email/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/email/actions.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/email/automations.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/email/binding.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/email/feeder.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/email/frame.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/email/inbox.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/evidence/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/evidence/recorder.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/history_bundle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/act_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/chat.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/communities.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/diary.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/digest.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/entity_runtime.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/fingerprint.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/lease.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/life.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/memory_reader.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/night_voice.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/phase_graph.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/phase_spec.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/prelude.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/prompt_overlay.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/reflection.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/spec/entity_phases.vendored.json +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/substrate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/tool_effects.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/tool_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/identity/visit_workflow.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/agora_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/command_sandbox_host.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/comms_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/config_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/constants.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/data_registry_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/default_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/discovery_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/discovery_queries.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/effect_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/email_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/embeddings_client.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/factory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/host_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/llm_client.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/local_helper_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/logging.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/mcp_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/mcp_worker.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/media_subprocess.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/observability.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/output_specs.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/run_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/server_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/session_attachments.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/structured_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/summarizer.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/telegram_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/tool_effects.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/tool_executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/tool_inventory_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractcore/workspace_scoped_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractmemory/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractmemory/brain_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractmemory/effect_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractmemory/identity_support.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/integrations/abstractmemory/seam_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/memory/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/memory/active_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/memory/active_memory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/memory/compaction.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/memory/kg_packets.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/memory/memact_composer.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/memory/recall_levels.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/memory/token_budget.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/rendering/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/rendering/agent_trace_report.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/rendering/json_stringify.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/scheduler/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/scheduler/convenience.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/scheduler/multi_store.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/scheduler/registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/scheduler/scheduler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/session_history.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/session_turns.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/artifacts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/base.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/commands.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/in_memory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/lease.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/ledger_chain.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/ledger_slim.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/observable.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/offloading.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/serialize.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/snapshots.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/sqlite.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/storage/steer_sidecar.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/triggers/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/triggers/email_received.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/triggers/manual.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/triggers/protocol.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/triggers/registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/triggers/schedule.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/turn_grounding.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/utils/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/utils/atomic_files.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/utils/file_filters.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/utils/workspace_paths.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/agent_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/context_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/control_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/effect_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/event_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/function_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/memact_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/subflow_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/adapters/variable_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/compiler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/flow.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/agent_ids.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/builtins.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/code_executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/execution_metrics.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/function_library.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/loop_back_check.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/loop_limit_lowering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/models.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/multi_entry_lowering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/pin_expressions.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/visualflow_compiler/visual/reroute_lowering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/workflow_bundle/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/workflow_bundle/models.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/workflow_bundle/packer.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/workflow_bundle/reader.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/src/abstractruntime/workflow_bundle/registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/automation_harness.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/conftest.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/email_wp2_support.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/fixtures/schedule_v1_corpus.json +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/live_email/conftest.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/live_email/live_email_support.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/live_email/test_email_live_runtime.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_abstractcore_comms_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_abstractcore_discovery_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_abstractcore_host_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_abstractcore_run_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_abstractcore_server_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_abstractcore_structured_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_abstractcore_telegram_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_active_context_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_active_memory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_agora_agent_alias_identity.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_agora_tools_http.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_analyze_media_addressing_and_walling.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_answer_user_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_artifacts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_calendar_schedule.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_commands.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_controller.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_controller_recovery.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_definition.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_discussion_isolation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_email_results.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_growing_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_next_fire.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_occurrence_input_resolver.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_occurrence_recovery.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_replay_read_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_retry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_session_turns.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_status.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_automation_tool_approval.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_browser_probe_target_walling.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_budget_law_no_unrequested_caps.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_capability_default_reasoning.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_chat_summarizer_integration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_code_node_restricted_python.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_command_sandbox_host_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_command_store.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_compaction_helpers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_compaction_summarizer_route.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_config_facade_models_engines.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_config_facade_voice_input_hint.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_control_adapter_while.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_controller_bundle_packaged.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_crash_ordering_inversions.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_create_if_absent.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_data_registry_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_default_tools_camera_gating.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_default_tools_comms_gating.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_default_tools_include_skim_files.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_default_tools_include_skim_folders.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_default_tools_include_skim_web.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_default_tools_search_files_executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_diary_capture.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_diary_write_rescue.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_directory_lease.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_disabled_toolsets_seam.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_discovery_survives_unbuildable_default.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_discovery_tts_unavailable_reason.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_discovery_voice_openai_api_key.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_discussion_session_anchor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_document_markdown_tables.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_document_renderers_hr_quote.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_durable_toolsets.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_durable_write_discipline.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_e2e_tool_calls_idempotency_lmstudio.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_effect_cancellation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_effect_issuance_idempotency.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_effect_payload_stays_json_serializable.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_election_consequence_teaching.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_email_binding_and_refiner.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_email_gate_fixes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_email_inbox_and_trigger.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_email_regate_fixes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_email_review_fixes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_email_self_trigger_loop.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_email_toolset_and_walls.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_emergence_experiment.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_emit_event_uses_wait_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_emit_event_without_workflow_registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_endpoint_profile_route_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_awake_memory_fixes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_brain_effects.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_chat_driver.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_chat_tools_reflection.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_diary.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_execute_tool.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_fetch_url_tool.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_history_window.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_life_loop.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_memory_richness.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_phase_graph_conformance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_react_visit_window.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_recent_memories.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_runtime.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_search_memory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_sleep_bound_and_yield_attribution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_substrate_resolution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_visit_honesty.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_workspace_cap.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_entity_workspace_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_event_wait_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_every_path_bearing_tool_is_walled.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_evidence_recorder.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_evidence_recorder_post_policy_envelope.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_execute_command_output_offload.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_execution_capability_discovery.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_explicit_eject_other_clients.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_factory_default_retry_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_factory_timeouts_default_to_abstractcore_config.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_format_repair_nudge.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_fresh_install_no_provider.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_gateway_facades_c4899.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_git_read_only_refiner.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_hf_process_residency_merge.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_history_window_multimodal.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_hot_path_store_reads.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_indexed_idempotency_lookup.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_integration_abstractcore.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_integrations_abstractcore.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_json_file_run_store_children_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_json_run_cache_bound.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_jsonl_ledger_recovery.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_kg_learn_and_recall_contract.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_ledger_chain.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_ledger_record_slimming.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_ledger_subscription.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_live_token_deltas.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_media_artifact_refs.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_media_artifact_refs_persist_across_restart.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_media_uses_source_path_label.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_payload_shape_refusal.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_requires_prompt.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_response_schema_normalization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_structured_output_fallback.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_text_phase_progress.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_truncation_retry_contract.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_use_context_appends_turn.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_call_verbatim_payload_capture.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_client_grounding_tail.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_client_media_artifacts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_client_system_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_client_tool_call_parsing.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_retry_classification.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_llm_streaming_on_token.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_local_helper_tool_exposure.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_local_residency_host_sweep.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_local_runtime_timeout_kwarg_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_max_iterations_ceiling.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_mcp_remote_tool_executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_mcp_runs_untrusted_and_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_mcp_worker_logging.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_mcp_worker_security.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_mcp_worker_stdio.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_media_artifact_resolution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_media_capability_default_routing.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_media_only_requests_skip_text_client.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_media_subprocess.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memact_composer_from_kg_result.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_appraise_handler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_communities.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_kg_assert_attributes_defaults.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_kg_packets.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_kg_predicate_aliasing.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_kg_query_packetization_restart.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_kg_query_recall_level_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_kg_semantic_query_ranking.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_note_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_query_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_query_rich_filters.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_scope_and_rehydrate_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_seam_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_seam_sqlite_durability.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_memory_tag_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_mlx_generation_serialization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_mlx_process_residency_merge.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_model_eject_cancel.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_model_residency_clean_switch.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_model_residency_control_plane.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_model_residency_lock_and_context_estimate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_multi_store_scheduler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_multimodal_abstractcore_integration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_native_mlx_application_wiring.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_native_mlx_execution_controls_live.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_native_tool_channel.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_night_voice.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_no_default_provider_refusal_ux.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_offload_answer_chain_c4978.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_offloaded_node_traces_report_unknown_not_zero.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_offloading.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_packaging_extras.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_parallel_readonly_tool_execution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_pause_resume.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_pdf_unicode_rendering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_personal_cycle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_phantom_attachment_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_phase_graph_artifact_control.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_phase_graph_obedience.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_phase_vocabulary_migration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_pooled_client_strips_construction_cache_key.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_prompt_cache_export_import.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_prompt_cache_fingerprint_stability.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_prompt_cache_modules.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_prompt_cache_posture_inheritance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_prompt_cache_thinking_and_prompt_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_prompt_overlay.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_provider_endpoint_profile_resolution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_provider_pin_routing_isolation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_queryable_run_store.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_r12_workspace_sandbox.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_read_file_fallback_to_session_attachments.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_read_idle_threading.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_readoption_experiment.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_real_integration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_realize_election.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_recall_levels_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_remote_client_cancel.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_remote_llm_client.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_remote_speculation_defaults.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_rendering_agent_trace_report.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_rendering_json_stringify.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_report_branding.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_resident_media_generation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_resume_concurrent_same_wait.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_retry_idempotency.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_run_history_bundle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_run_index_workspace_root.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_run_mutation_lock.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_run_scoped_tool_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_run_tool_scope_ceiling.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_browser_session_boundary.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_config_max_output_tokens_fallback.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_default_provider_model_refresh.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_effect_invocation_trace.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_health_and_bounded_vars.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_install_boundary.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_llm_call_grounding_in_ledger.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_node_traces.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_start_seeds_tool_support.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_runtime_tick_step_gate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_schedule_v1_corpus.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_schedule_v2_calendar.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_scheduler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_send_email_refiner.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_send_email_self_default_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_session_attachments_registry_and_open_tool.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_session_history.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_session_prompt_cache_attribution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_session_prompt_cache_visibility.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_session_route_stamp.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_session_start_cost.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_shell_tool_exposure.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_snapshots.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_speculation_inheritance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_speculation_reaches_provider_construction.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_sqlite_ledger_store.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_start_subworkflow_async_wait.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_start_subworkflow_inherit_context_merges_messages.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_start_subworkflow_workspace_inheritance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_steer_sidecar.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_storage_deletion.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_structured_output_schema_enum.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_subworkflow.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_terminal_effect_completion.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_terminal_resume_appends_ledger_completion.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_thinking_inheritance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tick_completion_includes_output_in_ledger.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_approval_executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_approval_resume_executes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_approval_wait_key_identity.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_calls_idempotency_keys.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_catalog.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_descriptor_registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_executor_argument_sanitization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_executor_error_output_detection.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_executor_filename_alias.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_executor_kwarg_canonicalization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_executor_read_file_aliases.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_executor_timeout.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_inventory_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_invoke_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_policy_and_mounts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_tool_wait_allowlist_safety.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_topic_election_world_model.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_trace_context_propagation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_trigger_registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_trigger_schedule_math.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_turn_grounding_byte_stability.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_turn_grounding_carriers_a3.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_vars_query_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visit_ab_fixture.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visit_midturn_elections.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visit_midturn_resume.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visit_workflow.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_agent_output_context_includes_messages.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_agent_skills_block_passthrough.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_agent_tool_observations_persist_across_restart.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_agent_use_context_inherits_attachments.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_agent_use_context_persists_tool_observations.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_agent_use_context_persists_turn.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_entity_memory_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_flow_end_effect_only_persistence.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_llm_call_partial_override.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_llm_call_schema_ref_resolution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_loop_back_out_of_body.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_loop_limit_and_list_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_loop_limit_on_wire.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_memact_compose_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_memory_kg_query_outputs_propagate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_memory_kg_resolve_outputs_propagate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_multi_entry_loop_overrides.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_reroute_lowering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_set_vars_pins.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_unknown_node_type_refuses.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visual_wait_event_deadline_passthrough.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_add_message_builtin.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_add_message_node_appends_to_active_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_agora_react_agent.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_call_tool_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_capability_routes_and_thinking.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_compiler_basic.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_context_and_builder_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_continue_on_error.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_edit_json_schema_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_event_inbox_react_agent.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_file_nodes_workspace.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_function_library.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_get_element_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_get_random_element_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_get_var_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_has_tools_builtin.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_llm_call_context_attachments_map_to_media.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_llm_call_multimodal_output.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_make_object_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_media_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_memory_effect_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_memory_source_pins.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_pin_expressions.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_prompt_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_random_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_schema_enum_switch.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_string_contains_replace.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_visualflow_tool_parameters_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_voice_openai_api_key_path.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_voice_stream_is_not_a_wait.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_w4_feelings_lens.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_wait_event_deadline.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_wait_event_prompt_metadata.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_wait_until_streak.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_wait_until_utc_normalization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workflow_bundle_registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workspace_builtin_deny.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workspace_context_allowed_workspaces.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workspace_policy_absolute_reanchor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workspace_policy_allowlist_mode.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workspace_policy_mount_virtual_paths.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workspace_policy_tool_calls_persist_across_restart.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workspace_prompt_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workspace_read_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_workspace_writable_paths.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.1}/tests/test_write_chart.py +0 -0
|
@@ -5,6 +5,13 @@ All notable changes to AbstractRuntime will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.10.1] - 2026-10-16
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **The JSON run store answers "which runs are running or waiting" from an in-memory index.** Every such listing (`list_runs` / `list_run_index` with status running or waiting) used to glob and `stat()` every run file in the store on every call — 10,678 files on a long-lived store — and each `stat` releases the GIL, so the scan queued behind any busy thread: 0.2 s alone, 3 s with two concurrent, 67–147 s beside a generating model. The store now keeps the set of active run ids, built from one scan, maintained by `save()`, `delete()` and the creation journal, and re-verifies every candidate against disk at listing time, so a run that ended or vanished is never listed and a stale entry heals itself; a background rescan at most every 60 s catches a writer that bypasses the journal. The rows, their order, filters, limits and the `updated_at` sort are exactly the scan's — proven by a differential harness against a copy of a live store under concurrent writers and a busy thread, and by `tests/test_active_index.py`. `JsonFileRunStore(..., use_active_index=False)` keeps the plain scan.
|
|
13
|
+
- The creation journal gains a `~<run_id>` line: a run that becomes active through one store object (resumed, re-opened, first save after a restart) is announced to every other store object on the same folder, like `+` for creation and `-` for deletion. Older readers ignore the line.
|
|
14
|
+
|
|
8
15
|
## [0.10.0] - 2026-10-15
|
|
9
16
|
|
|
10
17
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: AbstractRuntime
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.1
|
|
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
|
|
@@ -125,6 +125,8 @@ Run index and creation (all built-in run stores, including the offloading wrappe
|
|
|
125
125
|
- `list_run_index(status=, workflow_id=, session_id=, root_only=, limit=, oldest_first=, automation_id=, role=, session_kind=)`: lightweight rows carrying `automation_id`, `role`, `occurrence_index`, `session_kind` and `workspace_root` (the run's top-level `vars["workspace_root"]` as stored, stripped; `None` when absent); the three attribution filters take a value, a comma-separated string or a list; `root_only=True` returns turn roots (parent-less runs except automation controllers, plus automation occurrences)
|
|
126
126
|
- `session_kinds(session_id) -> frozenset` and `latest_occurrence_row(automation_id)`: indexed lookups used by session attribution and automation listings
|
|
127
127
|
- `JsonFileRunStore.warm_session_index()` builds the session and children indexes at host startup. Store objects and processes sharing one JSON run folder see each other's created and deleted runs through the creation journal `.runs_created.log`; v1 supports one writer process per store
|
|
128
|
+
- `JsonFileRunStore` answers `list_runs` / `list_run_index` for `status=running` or `status=waiting` (without `session_id`) from an in-memory **active index**: the set of active run ids, built from one directory scan (at host boot through `warm_session_index()`, else on the first such listing) and kept current by `save`, `create_if_absent`, `delete` and the creation journal. Every candidate is re-verified against its file at listing time, so a run that ended or vanished is never listed. Rows, order (file mtime, then file name, then the final `updated_at` sort), filters and limits are the same as the directory scan's; a listing of a 10,000-run store costs milliseconds instead of a full scan. `JsonFileRunStore(..., use_active_index=False)` keeps the plain scan. `rescan_active_index()` reconciles the index with the directory in the caller's thread; a background rescan runs at most every `JsonFileRunStore.ACTIVE_INDEX_RESCAN_S` (60 s) to pick up writers that bypass the store. `list_due_wait_until` (the scheduler's due-wait poll) takes its candidates from the index too. Other listings (a terminal status, no status, a session scope) scan as before.
|
|
129
|
+
- The creation journal (`.runs_created.log` in the run folder) carries one line per change another store object or process must learn about: `+<run_id>` created, `-<run_id>` deleted, `~<run_id>` became active again (resumed, re-opened, first save after a restart, or saved after another writer touched the file). Lines are written before the file change they announce; readers apply the lines they have not seen at their next lookup, and a line whose file has not landed yet (or does not read active yet) is re-checked until it does. Readers from AbstractRuntime 0.10.0 ignore `~` lines, and writers from 0.10.0 never write them: a re-open made by such a writer reaches other store objects through the periodic rescan.
|
|
128
130
|
|
|
129
131
|
Common decorators:
|
|
130
132
|
- `ObservableLedgerStore` for subscriptions (`src/abstractruntime/storage/observable.py`)
|
|
@@ -381,6 +381,10 @@ Invariants the design rests on:
|
|
|
381
381
|
- **Turns are defined once.** `select_session_turns` decides which runs are a session's turns (parent-less runs
|
|
382
382
|
except controllers, plus occurrences). History bundles, session replay, growing context and discussion seeds all
|
|
383
383
|
use it, and `list_run_index(root_only=True)` returns the same turn roots.
|
|
384
|
+
- **Active listings are indexed.** The JSON run store keeps the set of running and waiting run ids in memory
|
|
385
|
+
(one scan to build, then maintained by every save, create and delete and by the creation journal) and verifies each
|
|
386
|
+
candidate against its file when listing, so the gateway's polls read a few files instead of the whole folder while
|
|
387
|
+
returning exactly the scan's rows. See `docs/api.md` → "Run index and creation".
|
|
384
388
|
- **Attribution is indexed.** Each run index row carries `automation_id`, `role`, `occurrence_index` and
|
|
385
389
|
`session_kind`, derived from inline `vars._meta` that the offloading store never moves. `Runtime.start` uses
|
|
386
390
|
`session_attribution` to anchor every root run in a discussion session to the discussion's validated root and its
|
|
@@ -812,6 +812,10 @@ Invariants the design rests on:
|
|
|
812
812
|
- **Turns are defined once.** `select_session_turns` decides which runs are a session's turns (parent-less runs
|
|
813
813
|
except controllers, plus occurrences). History bundles, session replay, growing context and discussion seeds all
|
|
814
814
|
use it, and `list_run_index(root_only=True)` returns the same turn roots.
|
|
815
|
+
- **Active listings are indexed.** The JSON run store keeps the set of running and waiting run ids in memory
|
|
816
|
+
(one scan to build, then maintained by every save, create and delete and by the creation journal) and verifies each
|
|
817
|
+
candidate against its file when listing, so the gateway's polls read a few files instead of the whole folder while
|
|
818
|
+
returning exactly the scan's rows. See `docs/api.md` → "Run index and creation".
|
|
815
819
|
- **Attribution is indexed.** Each run index row carries `automation_id`, `role`, `occurrence_index` and
|
|
816
820
|
`session_kind`, derived from inline `vars._meta` that the offloading store never moves. `Runtime.start` uses
|
|
817
821
|
`session_attribution` to anchor every root run in a discussion session to the discussion's validated root and its
|
|
@@ -991,6 +995,8 @@ Run index and creation (all built-in run stores, including the offloading wrappe
|
|
|
991
995
|
- `list_run_index(status=, workflow_id=, session_id=, root_only=, limit=, oldest_first=, automation_id=, role=, session_kind=)`: lightweight rows carrying `automation_id`, `role`, `occurrence_index`, `session_kind` and `workspace_root` (the run's top-level `vars["workspace_root"]` as stored, stripped; `None` when absent); the three attribution filters take a value, a comma-separated string or a list; `root_only=True` returns turn roots (parent-less runs except automation controllers, plus automation occurrences)
|
|
992
996
|
- `session_kinds(session_id) -> frozenset` and `latest_occurrence_row(automation_id)`: indexed lookups used by session attribution and automation listings
|
|
993
997
|
- `JsonFileRunStore.warm_session_index()` builds the session and children indexes at host startup. Store objects and processes sharing one JSON run folder see each other's created and deleted runs through the creation journal `.runs_created.log`; v1 supports one writer process per store
|
|
998
|
+
- `JsonFileRunStore` answers `list_runs` / `list_run_index` for `status=running` or `status=waiting` (without `session_id`) from an in-memory **active index**: the set of active run ids, built from one directory scan (at host boot through `warm_session_index()`, else on the first such listing) and kept current by `save`, `create_if_absent`, `delete` and the creation journal. Every candidate is re-verified against its file at listing time, so a run that ended or vanished is never listed. Rows, order (file mtime, then file name, then the final `updated_at` sort), filters and limits are the same as the directory scan's; a listing of a 10,000-run store costs milliseconds instead of a full scan. `JsonFileRunStore(..., use_active_index=False)` keeps the plain scan. `rescan_active_index()` reconciles the index with the directory in the caller's thread; a background rescan runs at most every `JsonFileRunStore.ACTIVE_INDEX_RESCAN_S` (60 s) to pick up writers that bypass the store. `list_due_wait_until` (the scheduler's due-wait poll) takes its candidates from the index too. Other listings (a terminal status, no status, a session scope) scan as before.
|
|
999
|
+
- The creation journal (`.runs_created.log` in the run folder) carries one line per change another store object or process must learn about: `+<run_id>` created, `-<run_id>` deleted, `~<run_id>` became active again (resumed, re-opened, first save after a restart, or saved after another writer touched the file). Lines are written before the file change they announce; readers apply the lines they have not seen at their next lookup, and a line whose file has not landed yet (or does not read active yet) is re-checked until it does. Readers from AbstractRuntime 0.10.0 ignore `~` lines, and writers from 0.10.0 never write them: a re-open made by such a writer reaches other store objects through the periodic rescan.
|
|
994
1000
|
|
|
995
1001
|
Common decorators:
|
|
996
1002
|
- `ObservableLedgerStore` for subscriptions (`src/abstractruntime/storage/observable.py`)
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
### Changed
|
|
2
|
+
|
|
3
|
+
- **The JSON run store answers "which runs are running or waiting" from an in-memory index.** Every such listing (`list_runs` / `list_run_index` with status running or waiting) used to glob and `stat()` every run file in the store on every call — 10,678 files on a long-lived store — and each `stat` releases the GIL, so the scan queued behind any busy thread: 0.2 s alone, 3 s with two concurrent, 67–147 s beside a generating model. The store now keeps the set of active run ids, built from one scan, maintained by `save()`, `delete()` and the creation journal, and re-verifies every candidate against disk at listing time, so a run that ended or vanished is never listed and a stale entry heals itself; a background rescan at most every 60 s catches a writer that bypasses the journal. The rows, their order, filters, limits and the `updated_at` sort are exactly the scan's — proven by a differential harness against a copy of a live store under concurrent writers and a busy thread, and by `tests/test_active_index.py`. `JsonFileRunStore(..., use_active_index=False)` keeps the plain scan.
|
|
4
|
+
- The creation journal gains a `~<run_id>` line: a run that becomes active through one store object (resumed, re-opened, first save after a restart) is announced to every other store object on the same folder, like `+` for creation and `-` for deletion. Older readers ignore the line.
|