AbstractRuntime 0.10.0__tar.gz → 0.10.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/CHANGELOG.md +29 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/PKG-INFO +1 -1
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/api.md +2 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/architecture.md +4 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/llms-full.txt +6 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/pyproject.toml +1 -1
- abstractruntime-0.10.2/release-notes.md +19 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/json_files.py +371 -17
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/code_executor.py +213 -18
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/function_library.py +8 -6
- abstractruntime-0.10.2/tests/test_active_index.py +400 -0
- abstractruntime-0.10.2/tests/test_code_node_imports.py +212 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_json_store_scan_memo.py +16 -1
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_function_library.py +2 -2
- abstractruntime-0.10.0/release-notes.md +0 -20
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/.github/workflows/ci.yml +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/.github/workflows/release.yml +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/.gitignore +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/ACKNOWLEDGMENTS.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/CODE_OF_CONDUCT.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/CONTRIBUTING.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/LICENSE +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/ROADMAP.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/SECURITY.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/adr/0001_layered_coupling_with_abstractcore.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/adr/0002_execution_modes_local_remote_hybrid.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/adr/0003_provenance_tamper_evident_hash_chain.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/adr/0004_runtime_owns_run_scoped_media_execution_truth.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/adr/0005_runtime_owns_abstractcore_host_discovery_queries.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/adr/0006_runtime_owns_durable_abstractcore_bloc_prompt_cache.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/adr/0007_runtime_relays_core_owned_model_residency_truth.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/adr/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/artifacts.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/automations.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/001_runtime_kernel.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0030_runtime_host_facades_for_comms_telegram_and_tool_specs.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0032_runtime_durable_outbound_comms_truth.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0033_runtime_host_local_prompt_cache_export_import_surface.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0035_model_residency_provider_truth_for_local_http_clients.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0037_visualflow_generate_music_node_compiler_parity.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0039_runtime_music_structure_prompt_bool_contract.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/003_wait_primitives.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0040_task_agnostic_local_residency_listing.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0041_runtime_hardware_extras_avoid_nonpermissive_document_stacks.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0042_core_vision_upscale_and_parameter_surface.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0043_runtime_vision_adapter_and_batch_surface.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/004_scheduler_driver.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/005_abstractcore_integration.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/006_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/007_provenance_hash_chain.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/009_artifact_store.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/010_examples_and_composition.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/011_subworkflow_support.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/012_run_store_query_and_scheduler_support.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/013_effect_retries_and_idempotency.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/016_runtime_aware_parameters.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/019_runtime_host_facade_for_core_operator_surfaces.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/020_runtime_gateway_install_boundary.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/021_runtime_gateway_env_namespace_cleanup.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/022_model_residency_control_plane.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/023_truthful_local_media_residency_boundaries.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/024_runtime_owned_run_scoped_media_execution.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/026_runtime_host_discovery_facade_for_core_catalogs.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/027_runtime_durable_bloc_prompt_cache_facade.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/028_runtime_bloc_kv_lifecycle_and_pruning.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/029_runtime_music_generation_and_discovery_via_abstractcore.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0846_mlx_instance_scheduling_and_execution_controls.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/completed/0847_automations_v1_controller_contracts_occurrences_triggers.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/001_integrations_abstractcore.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/001_runtime_kernel.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/002_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/0034_agent_runtime_convenience_constructor.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/003_provenance_ledger_chain.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/003_wait_resume_and_scheduler.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/004_effect_handlers_and_integrations.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/004_tests.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/005_docs_updates.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/005_examples_and_composition.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/006_ai_fingerprint_and_provenance.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/DEPRECATED_README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/deprecated/abstractruntime_docs_final_02a7373b.plan.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/0070_standalone_wui_browser_session_security_contract.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/008_signatures_and_keys.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/014_remote_tool_worker_executor.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/017_limit_warnings_and_observability.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/018_workspace_access_policy_for_media_and_tools.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/0233_real_run_cancellation.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/025_runtime_retention_and_purge_contract.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/026_context_checkpoint_self_compression.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/027_quote_provenance_discipline.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/028_selective_artifact_rehydration.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/0845_session_prompt_cache_resume_and_purge_contract.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/0848_automations_v2_external_event_inbox_and_run_triggers.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_portability/0065_portable_process_and_lock_layer.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_portability/0066_portable_io_and_media_reader.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_portability/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0044_meta_analysis_record.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0045_crash_replay_harness_and_ordering_invariant.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0046_per_run_driver_exclusion.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0047_indexed_idempotency_lookup.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0048_durable_io_unification.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0049_llm_client_mechanical_split.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0050_control_sidecar_all_writers.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0051_runtime_owned_durable_event_mailbox.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0052_sync_store_event_loop_tripwire.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0053_bounded_run_vars_growth.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0054_runtime_health_counters.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0055_jsonl_store_honesty.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0064_prompt_cache_fingerprint_stability.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0067_durable_write_discipline.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/0068_hot_path_store_reads.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/planned/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/0031_runtime_tool_spec_adapters_for_gateway_and_mcp.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/0036_local_media_residency_bridge_to_core_residency.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/0038_core_server_pool_residency_affinity.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/0069_document_renderer_professional_figures.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/runtime_systemic_reliability/0056_schema_version_and_quarantine_loading.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/runtime_systemic_reliability/0057_trust_boundary_stamp_registry.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/runtime_systemic_reliability/0058_terminal_run_archival_helper.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/runtime_systemic_reliability/0059_memory_span_handler_extraction.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/runtime_systemic_reliability/0060_visualflow_compiler_decomposition.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/runtime_systemic_reliability/0061_root_api_deprecation_machinery.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/runtime_systemic_reliability/0062_dependency_honesty_extras.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/runtime_systemic_reliability/0063_b3_envelope_lane_unification.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/backlog/proposed/runtime_systemic_reliability/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/email.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/entity-runtime.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/evidence.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/faq.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/getting-started.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/integrations/abstractcore.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/limits.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/manual_testing.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/mcp-worker.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/proposal.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/provenance.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/snapshots.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/tool-approval.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/tools-comms.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/troubleshooting.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/docs/workflow-bundles.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/examples/01_hello_world.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/examples/02_ask_user.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/examples/03_wait_until.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/examples/04_multi_step.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/examples/05_persistence.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/examples/06_llm_integration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/examples/07_react_agent.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/examples/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/llms.txt +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/mkdocs.yml +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/pytest.ini +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/scripts/backfill_diary_edges.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/scripts/generate_llms_full.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automation_queries.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/adapters.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/attention.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/bundle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/bundles/automation-controller/flows/controller.json +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/bundles/automation-controller/manifest.json +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/commands.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/controller.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/ledger.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/models.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/automations/service.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/config.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/effect_cancellation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/event_keys.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/health.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/live_deltas.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/models.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/progress_channel.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/run_attribution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/run_identity.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/run_lifecycle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/runtime.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/spec.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/tool_scope.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/core/vars.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/documents/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/documents/charts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/documents/docx.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/documents/pdf.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/email/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/email/actions.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/email/automations.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/email/binding.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/email/feeder.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/email/frame.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/email/inbox.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/evidence/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/evidence/recorder.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/history_bundle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/act_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/chat.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/communities.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/diary.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/digest.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/entity_runtime.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/fingerprint.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/lease.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/life.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/memory_reader.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/night_voice.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/phase_graph.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/phase_spec.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/prelude.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/prompt_overlay.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/reflection.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/spec/entity_phases.vendored.json +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/substrate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/tool_effects.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/tool_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/identity/visit_workflow.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/agora_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/command_sandbox_host.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/comms_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/config_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/constants.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/data_registry_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/default_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/discovery_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/discovery_queries.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/effect_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/email_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/embeddings_client.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/factory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/host_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/llm_client.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/local_helper_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/logging.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/mcp_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/mcp_worker.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/media_subprocess.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/observability.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/output_specs.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/run_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/server_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/session_attachments.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/structured_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/summarizer.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/telegram_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/tool_effects.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/tool_executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/tool_inventory_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractcore/workspace_scoped_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractmemory/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractmemory/brain_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractmemory/effect_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractmemory/identity_support.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/integrations/abstractmemory/seam_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/memory/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/memory/active_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/memory/active_memory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/memory/compaction.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/memory/kg_packets.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/memory/memact_composer.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/memory/recall_levels.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/memory/token_budget.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/rendering/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/rendering/agent_trace_report.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/rendering/json_stringify.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/scheduler/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/scheduler/convenience.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/scheduler/multi_store.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/scheduler/registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/scheduler/scheduler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/session_history.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/session_turns.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/artifacts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/base.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/commands.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/in_memory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/lease.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/ledger_chain.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/ledger_slim.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/observable.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/offloading.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/serialize.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/snapshots.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/sqlite.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/storage/steer_sidecar.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/triggers/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/triggers/email_received.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/triggers/manual.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/triggers/protocol.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/triggers/registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/triggers/schedule.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/turn_grounding.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/utils/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/utils/atomic_files.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/utils/file_filters.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/utils/workspace_paths.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/agent_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/context_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/control_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/effect_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/event_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/function_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/memact_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/subflow_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/adapters/variable_adapter.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/compiler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/flow.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/agent_ids.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/builtins.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/execution_metrics.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/loop_back_check.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/loop_limit_lowering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/models.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/multi_entry_lowering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/pin_expressions.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/visualflow_compiler/visual/reroute_lowering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/workflow_bundle/__init__.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/workflow_bundle/models.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/workflow_bundle/packer.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/workflow_bundle/reader.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/src/abstractruntime/workflow_bundle/registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/README.md +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/automation_harness.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/conftest.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/email_wp2_support.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/fixtures/schedule_v1_corpus.json +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/live_email/conftest.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/live_email/live_email_support.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/live_email/test_email_live_runtime.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_abstractcore_comms_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_abstractcore_discovery_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_abstractcore_host_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_abstractcore_run_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_abstractcore_server_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_abstractcore_structured_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_abstractcore_telegram_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_active_context_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_active_memory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_agora_agent_alias_identity.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_agora_tools_http.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_analyze_media_addressing_and_walling.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_answer_user_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_artifacts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_calendar_schedule.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_commands.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_controller.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_controller_recovery.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_definition.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_discussion_isolation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_email_results.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_growing_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_next_fire.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_occurrence_input_resolver.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_occurrence_recovery.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_replay_read_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_retry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_session_turns.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_status.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_automation_tool_approval.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_browser_probe_target_walling.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_budget_law_no_unrequested_caps.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_capability_default_reasoning.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_chat_summarizer_integration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_code_node_restricted_python.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_command_sandbox_host_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_command_store.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_compaction_helpers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_compaction_summarizer_route.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_config_facade_models_engines.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_config_facade_voice_input_hint.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_control_adapter_while.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_controller_bundle_packaged.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_crash_ordering_inversions.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_create_if_absent.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_data_registry_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_default_tools_camera_gating.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_default_tools_comms_gating.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_default_tools_include_skim_files.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_default_tools_include_skim_folders.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_default_tools_include_skim_web.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_default_tools_search_files_executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_diary_capture.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_diary_write_rescue.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_directory_lease.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_disabled_toolsets_seam.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_discovery_survives_unbuildable_default.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_discovery_tts_unavailable_reason.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_discovery_voice_openai_api_key.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_discussion_session_anchor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_document_markdown_tables.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_document_renderers_hr_quote.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_durable_toolsets.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_durable_write_discipline.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_e2e_tool_calls_idempotency_lmstudio.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_effect_cancellation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_effect_issuance_idempotency.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_effect_payload_stays_json_serializable.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_election_consequence_teaching.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_email_binding_and_refiner.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_email_gate_fixes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_email_inbox_and_trigger.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_email_regate_fixes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_email_review_fixes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_email_self_trigger_loop.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_email_toolset_and_walls.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_emergence_experiment.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_emit_event_uses_wait_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_emit_event_without_workflow_registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_endpoint_profile_route_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_awake_memory_fixes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_brain_effects.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_chat_driver.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_chat_tools_reflection.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_diary.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_execute_tool.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_fetch_url_tool.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_history_window.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_life_loop.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_memory_richness.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_phase_graph_conformance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_react_visit_window.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_recent_memories.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_runtime.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_search_memory.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_sleep_bound_and_yield_attribution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_substrate_resolution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_visit_honesty.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_workspace_cap.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_entity_workspace_tools.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_event_wait_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_every_path_bearing_tool_is_walled.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_evidence_recorder.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_evidence_recorder_post_policy_envelope.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_execute_command_output_offload.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_execution_capability_discovery.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_explicit_eject_other_clients.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_factory_default_retry_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_factory_timeouts_default_to_abstractcore_config.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_format_repair_nudge.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_fresh_install_no_provider.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_gateway_facades_c4899.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_git_read_only_refiner.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_hf_process_residency_merge.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_history_window_multimodal.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_hot_path_store_reads.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_indexed_idempotency_lookup.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_integration_abstractcore.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_integrations_abstractcore.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_json_file_run_store_children_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_json_run_cache_bound.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_jsonl_ledger_recovery.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_kg_learn_and_recall_contract.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_ledger_chain.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_ledger_record_slimming.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_ledger_subscription.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_live_token_deltas.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_media_artifact_refs.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_media_artifact_refs_persist_across_restart.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_media_uses_source_path_label.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_payload_shape_refusal.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_requires_prompt.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_response_schema_normalization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_structured_output_fallback.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_text_phase_progress.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_truncation_retry_contract.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_use_context_appends_turn.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_call_verbatim_payload_capture.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_client_grounding_tail.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_client_media_artifacts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_client_system_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_client_tool_call_parsing.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_retry_classification.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_llm_streaming_on_token.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_local_helper_tool_exposure.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_local_residency_host_sweep.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_local_runtime_timeout_kwarg_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_max_iterations_ceiling.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_mcp_remote_tool_executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_mcp_runs_untrusted_and_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_mcp_worker_logging.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_mcp_worker_security.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_mcp_worker_stdio.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_media_artifact_resolution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_media_capability_default_routing.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_media_only_requests_skip_text_client.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_media_subprocess.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memact_composer_from_kg_result.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_appraise_handler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_communities.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_kg_assert_attributes_defaults.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_kg_packets.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_kg_predicate_aliasing.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_kg_query_packetization_restart.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_kg_query_recall_level_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_kg_semantic_query_ranking.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_note_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_query_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_query_rich_filters.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_scope_and_rehydrate_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_seam_handlers.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_seam_sqlite_durability.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_memory_tag_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_mlx_generation_serialization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_mlx_process_residency_merge.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_model_eject_cancel.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_model_residency_clean_switch.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_model_residency_control_plane.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_model_residency_lock_and_context_estimate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_multi_store_scheduler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_multimodal_abstractcore_integration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_native_mlx_application_wiring.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_native_mlx_execution_controls_live.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_native_tool_channel.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_night_voice.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_no_default_provider_refusal_ux.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_offload_answer_chain_c4978.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_offloaded_node_traces_report_unknown_not_zero.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_offloading.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_packaging_extras.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_parallel_readonly_tool_execution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_pause_resume.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_pdf_unicode_rendering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_personal_cycle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_phantom_attachment_index.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_phase_graph_artifact_control.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_phase_graph_obedience.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_phase_vocabulary_migration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_pooled_client_strips_construction_cache_key.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_prompt_cache_export_import.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_prompt_cache_fingerprint_stability.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_prompt_cache_modules.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_prompt_cache_posture_inheritance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_prompt_cache_thinking_and_prompt_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_prompt_overlay.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_provider_endpoint_profile_resolution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_provider_pin_routing_isolation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_queryable_run_store.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_r12_workspace_sandbox.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_read_file_fallback_to_session_attachments.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_read_idle_threading.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_readoption_experiment.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_real_integration.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_realize_election.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_recall_levels_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_remote_client_cancel.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_remote_llm_client.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_remote_speculation_defaults.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_rendering_agent_trace_report.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_rendering_json_stringify.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_report_branding.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_resident_media_generation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_resume_concurrent_same_wait.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_retry_idempotency.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_run_history_bundle.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_run_index_workspace_root.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_run_mutation_lock.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_run_scoped_tool_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_run_tool_scope_ceiling.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_browser_session_boundary.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_config_max_output_tokens_fallback.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_default_provider_model_refresh.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_effect_invocation_trace.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_health_and_bounded_vars.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_install_boundary.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_llm_call_grounding_in_ledger.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_node_traces.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_start_seeds_tool_support.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_runtime_tick_step_gate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_schedule_v1_corpus.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_schedule_v2_calendar.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_scheduler.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_send_email_refiner.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_send_email_self_default_policy.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_session_attachments_registry_and_open_tool.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_session_history.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_session_prompt_cache_attribution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_session_prompt_cache_visibility.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_session_route_stamp.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_session_start_cost.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_shell_tool_exposure.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_snapshots.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_speculation_inheritance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_speculation_reaches_provider_construction.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_sqlite_ledger_store.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_start_subworkflow_async_wait.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_start_subworkflow_inherit_context_merges_messages.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_start_subworkflow_workspace_inheritance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_steer_sidecar.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_storage_deletion.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_structured_output_schema_enum.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_subworkflow.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_terminal_effect_completion.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_terminal_resume_appends_ledger_completion.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_thinking_inheritance.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tick_completion_includes_output_in_ledger.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_approval_executor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_approval_resume_executes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_approval_wait_key_identity.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_calls_idempotency_keys.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_catalog.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_descriptor_registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_executor_argument_sanitization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_executor_error_output_detection.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_executor_filename_alias.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_executor_kwarg_canonicalization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_executor_read_file_aliases.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_executor_timeout.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_inventory_facade.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_invoke_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_policy_and_mounts.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_tool_wait_allowlist_safety.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_topic_election_world_model.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_trace_context_propagation.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_trigger_registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_trigger_schedule_math.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_turn_grounding_byte_stability.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_turn_grounding_carriers_a3.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_vars_query_effect.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visit_ab_fixture.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visit_midturn_elections.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visit_midturn_resume.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visit_workflow.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_agent_output_context_includes_messages.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_agent_skills_block_passthrough.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_agent_tool_observations_persist_across_restart.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_agent_use_context_inherits_attachments.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_agent_use_context_persists_tool_observations.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_agent_use_context_persists_turn.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_entity_memory_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_flow_end_effect_only_persistence.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_llm_call_partial_override.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_llm_call_schema_ref_resolution.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_loop_back_out_of_body.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_loop_limit_and_list_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_loop_limit_on_wire.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_memact_compose_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_memory_kg_query_outputs_propagate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_memory_kg_resolve_outputs_propagate.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_multi_entry_loop_overrides.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_reroute_lowering.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_set_vars_pins.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_unknown_node_type_refuses.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visual_wait_event_deadline_passthrough.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_add_message_builtin.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_add_message_node_appends_to_active_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_agora_react_agent.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_call_tool_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_capability_routes_and_thinking.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_compiler_basic.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_context_and_builder_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_continue_on_error.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_edit_json_schema_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_event_inbox_react_agent.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_file_nodes_workspace.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_get_element_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_get_random_element_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_get_var_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_has_tools_builtin.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_llm_call_context_attachments_map_to_media.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_llm_call_multimodal_output.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_make_object_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_media_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_memory_effect_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_memory_source_pins.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_pin_expressions.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_prompt_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_random_nodes.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_schema_enum_switch.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_string_contains_replace.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_visualflow_tool_parameters_node.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_voice_openai_api_key_path.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_voice_stream_is_not_a_wait.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_w4_feelings_lens.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_wait_event_deadline.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_wait_event_prompt_metadata.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_wait_until_streak.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_wait_until_utc_normalization.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workflow_bundle_registry.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workspace_builtin_deny.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workspace_context_allowed_workspaces.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workspace_policy_absolute_reanchor.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workspace_policy_allowlist_mode.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workspace_policy_mount_virtual_paths.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workspace_policy_tool_calls_persist_across_restart.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workspace_prompt_context.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workspace_read_only.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_workspace_writable_paths.py +0 -0
- {abstractruntime-0.10.0 → abstractruntime-0.10.2}/tests/test_write_chart.py +0 -0
|
@@ -5,6 +5,35 @@ 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.2] - 2026-10-16
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **Code nodes can import Python's standard library.** In the `sandbox` permission mode, `import json`, `re`,
|
|
13
|
+
`datetime`, `math`, `collections`, `itertools`, `statistics`, `textwrap`, `hashlib`, `urllib.parse`… now
|
|
14
|
+
work, at the top of the code and inside functions, in both the RestrictedPython lane and the fallback lane, and
|
|
15
|
+
inside the function bodies of flow function libraries. The sandbox still refuses third-party packages, private
|
|
16
|
+
(`_`-prefixed) modules, and the standard-library modules that reach the machine or go around the sandbox's own
|
|
17
|
+
checks: processes and the operating system (`os`, `subprocess`, `threading`, `signal`, `ctypes`, `platform`…), files (`io`,
|
|
18
|
+
`pathlib`, `shutil`, `tempfile`, `glob`, `sqlite3`, `logging`, and the parsers that read a file by path: `xml`,
|
|
19
|
+
`configparser`, `argparse`…), the network (`socket`, `http`, `urllib.request`, `smtplib`…), code loading or
|
|
20
|
+
interpreter internals (`sys`, `importlib`, `pickle`, `types`, `inspect`…) and attribute access by name,
|
|
21
|
+
evaluated annotations or frames (`operator`, `typing`, `functools`, `traceback`). A refusal names the module
|
|
22
|
+
and the reason; `from x import *`, relative imports and the `__import__` call stay refused.
|
|
23
|
+
- **A Code node's return value must be JSON data.** `transform` returning a module, a function, a set, bytes or
|
|
24
|
+
any other value JSON cannot carry now fails with a sandbox error naming the value and where it sits
|
|
25
|
+
(`transform returned a value that cannot be sent as JSON: module 'time' at output[2]`), in every permission
|
|
26
|
+
mode, instead of a serializer crash later in the gateway's simulate reply or the run's persisted state. `full_access` (host policy) imports anything, as before.
|
|
27
|
+
The rule is applied twice: at compile time by `validate_code`, and at run time by the `__import__` bound into
|
|
28
|
+
the sandbox builtins. `get_code_execution_policy()` now lists `imports.denied_modules` for thin clients.
|
|
29
|
+
|
|
30
|
+
## [0.10.1] - 2026-10-16
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- **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.
|
|
35
|
+
- 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.
|
|
36
|
+
|
|
8
37
|
## [0.10.0] - 2026-10-15
|
|
9
38
|
|
|
10
39
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: AbstractRuntime
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.2
|
|
4
4
|
Summary: AbstractRuntime: a durable graph runner designed to pair with AbstractCore.
|
|
5
5
|
Project-URL: AbstractCore (website), https://www.abstractcore.ai/
|
|
6
6
|
Project-URL: AbstractRuntime (GitHub), https://github.com/lpalbou/abstractruntime
|
|
@@ -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,19 @@
|
|
|
1
|
+
### Changed
|
|
2
|
+
|
|
3
|
+
- **Code nodes can import Python's standard library.** In the `sandbox` permission mode, `import json`, `re`,
|
|
4
|
+
`datetime`, `math`, `collections`, `itertools`, `statistics`, `textwrap`, `hashlib`, `urllib.parse`… now
|
|
5
|
+
work, at the top of the code and inside functions, in both the RestrictedPython lane and the fallback lane, and
|
|
6
|
+
inside the function bodies of flow function libraries. The sandbox still refuses third-party packages, private
|
|
7
|
+
(`_`-prefixed) modules, and the standard-library modules that reach the machine or go around the sandbox's own
|
|
8
|
+
checks: processes and the operating system (`os`, `subprocess`, `threading`, `signal`, `ctypes`, `platform`…), files (`io`,
|
|
9
|
+
`pathlib`, `shutil`, `tempfile`, `glob`, `sqlite3`, `logging`, and the parsers that read a file by path: `xml`,
|
|
10
|
+
`configparser`, `argparse`…), the network (`socket`, `http`, `urllib.request`, `smtplib`…), code loading or
|
|
11
|
+
interpreter internals (`sys`, `importlib`, `pickle`, `types`, `inspect`…) and attribute access by name,
|
|
12
|
+
evaluated annotations or frames (`operator`, `typing`, `functools`, `traceback`). A refusal names the module
|
|
13
|
+
and the reason; `from x import *`, relative imports and the `__import__` call stay refused.
|
|
14
|
+
- **A Code node's return value must be JSON data.** `transform` returning a module, a function, a set, bytes or
|
|
15
|
+
any other value JSON cannot carry now fails with a sandbox error naming the value and where it sits
|
|
16
|
+
(`transform returned a value that cannot be sent as JSON: module 'time' at output[2]`), in every permission
|
|
17
|
+
mode, instead of a serializer crash later in the gateway's simulate reply or the run's persisted state. `full_access` (host policy) imports anything, as before.
|
|
18
|
+
The rule is applied twice: at compile time by `validate_code`, and at run time by the `__import__` bound into
|
|
19
|
+
the sandbox builtins. `get_code_execution_policy()` now lists `imports.denied_modules` for thin clients.
|