AbstractRuntime 0.7.1__tar.gz → 0.7.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/ACKNOWLEDGMENTS.md +1 -1
  2. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/CHANGELOG.md +27 -0
  3. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/PKG-INFO +9 -9
  4. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/README.md +4 -4
  5. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/api.md +1 -1
  6. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/architecture.md +2 -2
  7. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/troubleshooting.md +1 -1
  8. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/llms-full.txt +9 -9
  9. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/llms.txt +2 -2
  10. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/pyproject.toml +8 -7
  11. abstractruntime-0.7.2/release-notes.md +24 -0
  12. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/discovery_queries.py +22 -3
  13. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/mcp_worker.py +2 -1
  14. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_discovery_facade.py +42 -0
  15. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_discovery_tts_unavailable_reason.py +1 -1
  16. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_packaging_extras.py +39 -10
  17. abstractruntime-0.7.1/release-notes.md +0 -14
  18. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/.github/workflows/ci.yml +0 -0
  19. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/.github/workflows/release.yml +0 -0
  20. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/.gitignore +0 -0
  21. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/CODE_OF_CONDUCT.md +0 -0
  22. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/CONTRIBUTING.md +0 -0
  23. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/LICENSE +0 -0
  24. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/ROADMAP.md +0 -0
  25. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/SECURITY.md +0 -0
  26. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/README.md +0 -0
  27. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0001_layered_coupling_with_abstractcore.md +0 -0
  28. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0002_execution_modes_local_remote_hybrid.md +0 -0
  29. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0003_provenance_tamper_evident_hash_chain.md +0 -0
  30. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0004_runtime_owns_run_scoped_media_execution_truth.md +0 -0
  31. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0005_runtime_owns_abstractcore_host_discovery_queries.md +0 -0
  32. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0006_runtime_owns_durable_abstractcore_bloc_prompt_cache.md +0 -0
  33. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/0007_runtime_relays_core_owned_model_residency_truth.md +0 -0
  34. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/adr/README.md +0 -0
  35. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/artifacts.md +0 -0
  36. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/automations.md +0 -0
  37. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/README.md +0 -0
  38. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/001_runtime_kernel.md +0 -0
  39. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/002_persistence_and_ledger.md +0 -0
  40. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0030_runtime_host_facades_for_comms_telegram_and_tool_specs.md +0 -0
  41. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0032_runtime_durable_outbound_comms_truth.md +0 -0
  42. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0033_runtime_host_local_prompt_cache_export_import_surface.md +0 -0
  43. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0035_model_residency_provider_truth_for_local_http_clients.md +0 -0
  44. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0037_visualflow_generate_music_node_compiler_parity.md +0 -0
  45. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0039_runtime_music_structure_prompt_bool_contract.md +0 -0
  46. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/003_wait_primitives.md +0 -0
  47. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0040_task_agnostic_local_residency_listing.md +0 -0
  48. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0041_runtime_hardware_extras_avoid_nonpermissive_document_stacks.md +0 -0
  49. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0042_core_vision_upscale_and_parameter_surface.md +0 -0
  50. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0043_runtime_vision_adapter_and_batch_surface.md +0 -0
  51. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/004_scheduler_driver.md +0 -0
  52. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/005_abstractcore_integration.md +0 -0
  53. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/006_snapshots_bookmarks.md +0 -0
  54. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/007_provenance_hash_chain.md +0 -0
  55. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/009_artifact_store.md +0 -0
  56. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/010_examples_and_composition.md +0 -0
  57. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/011_subworkflow_support.md +0 -0
  58. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/012_run_store_query_and_scheduler_support.md +0 -0
  59. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/013_effect_retries_and_idempotency.md +0 -0
  60. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/016_runtime_aware_parameters.md +0 -0
  61. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/019_runtime_host_facade_for_core_operator_surfaces.md +0 -0
  62. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/020_runtime_gateway_install_boundary.md +0 -0
  63. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/021_runtime_gateway_env_namespace_cleanup.md +0 -0
  64. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/022_model_residency_control_plane.md +0 -0
  65. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/023_truthful_local_media_residency_boundaries.md +0 -0
  66. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/024_runtime_owned_run_scoped_media_execution.md +0 -0
  67. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/026_runtime_host_discovery_facade_for_core_catalogs.md +0 -0
  68. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/027_runtime_durable_bloc_prompt_cache_facade.md +0 -0
  69. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/028_runtime_bloc_kv_lifecycle_and_pruning.md +0 -0
  70. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/029_runtime_music_generation_and_discovery_via_abstractcore.md +0 -0
  71. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0846_mlx_instance_scheduling_and_execution_controls.md +0 -0
  72. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/completed/0847_automations_v1_controller_contracts_occurrences_triggers.md +0 -0
  73. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/001_integrations_abstractcore.md +0 -0
  74. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/001_runtime_kernel.md +0 -0
  75. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/002_persistence_and_ledger.md +0 -0
  76. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/002_snapshots_bookmarks.md +0 -0
  77. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/0034_agent_runtime_convenience_constructor.md +0 -0
  78. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/003_provenance_ledger_chain.md +0 -0
  79. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/003_wait_resume_and_scheduler.md +0 -0
  80. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/004_effect_handlers_and_integrations.md +0 -0
  81. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/004_tests.md +0 -0
  82. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/005_docs_updates.md +0 -0
  83. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/005_examples_and_composition.md +0 -0
  84. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/006_ai_fingerprint_and_provenance.md +0 -0
  85. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/DEPRECATED_README.md +0 -0
  86. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/README.md +0 -0
  87. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/deprecated/abstractruntime_docs_final_02a7373b.plan.md +0 -0
  88. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/0070_standalone_wui_browser_session_security_contract.md +0 -0
  89. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/008_signatures_and_keys.md +0 -0
  90. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/014_remote_tool_worker_executor.md +0 -0
  91. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/017_limit_warnings_and_observability.md +0 -0
  92. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/018_workspace_access_policy_for_media_and_tools.md +0 -0
  93. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/0233_real_run_cancellation.md +0 -0
  94. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/025_runtime_retention_and_purge_contract.md +0 -0
  95. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/026_context_checkpoint_self_compression.md +0 -0
  96. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/027_quote_provenance_discipline.md +0 -0
  97. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/028_selective_artifact_rehydration.md +0 -0
  98. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/0845_session_prompt_cache_resume_and_purge_contract.md +0 -0
  99. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/0848_automations_v2_external_event_inbox_and_run_triggers.md +0 -0
  100. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_portability/0065_portable_process_and_lock_layer.md +0 -0
  101. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_portability/0066_portable_io_and_media_reader.md +0 -0
  102. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_portability/README.md +0 -0
  103. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0044_meta_analysis_record.md +0 -0
  104. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0045_crash_replay_harness_and_ordering_invariant.md +0 -0
  105. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0046_per_run_driver_exclusion.md +0 -0
  106. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0047_indexed_idempotency_lookup.md +0 -0
  107. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0048_durable_io_unification.md +0 -0
  108. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0049_llm_client_mechanical_split.md +0 -0
  109. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0050_control_sidecar_all_writers.md +0 -0
  110. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0051_runtime_owned_durable_event_mailbox.md +0 -0
  111. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0052_sync_store_event_loop_tripwire.md +0 -0
  112. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0053_bounded_run_vars_growth.md +0 -0
  113. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0054_runtime_health_counters.md +0 -0
  114. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0055_jsonl_store_honesty.md +0 -0
  115. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0064_prompt_cache_fingerprint_stability.md +0 -0
  116. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0067_durable_write_discipline.md +0 -0
  117. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/0068_hot_path_store_reads.md +0 -0
  118. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/planned/runtime_systemic_reliability/README.md +0 -0
  119. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/0031_runtime_tool_spec_adapters_for_gateway_and_mcp.md +0 -0
  120. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/0036_local_media_residency_bridge_to_core_residency.md +0 -0
  121. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/0038_core_server_pool_residency_affinity.md +0 -0
  122. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/0069_document_renderer_professional_figures.md +0 -0
  123. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0056_schema_version_and_quarantine_loading.md +0 -0
  124. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0057_trust_boundary_stamp_registry.md +0 -0
  125. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0058_terminal_run_archival_helper.md +0 -0
  126. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0059_memory_span_handler_extraction.md +0 -0
  127. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0060_visualflow_compiler_decomposition.md +0 -0
  128. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0061_root_api_deprecation_machinery.md +0 -0
  129. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0062_dependency_honesty_extras.md +0 -0
  130. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/0063_b3_envelope_lane_unification.md +0 -0
  131. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/backlog/proposed/runtime_systemic_reliability/README.md +0 -0
  132. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/entity-runtime.md +0 -0
  133. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/evidence.md +0 -0
  134. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/faq.md +0 -0
  135. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/getting-started.md +0 -0
  136. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/integrations/abstractcore.md +0 -0
  137. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/limits.md +0 -0
  138. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/manual_testing.md +0 -0
  139. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/mcp-worker.md +0 -0
  140. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/proposal.md +0 -0
  141. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/provenance.md +0 -0
  142. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/snapshots.md +0 -0
  143. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/tool-approval.md +0 -0
  144. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/tools-comms.md +0 -0
  145. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/docs/workflow-bundles.md +0 -0
  146. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/emails.config.example.yaml +0 -0
  147. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/01_hello_world.py +0 -0
  148. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/02_ask_user.py +0 -0
  149. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/03_wait_until.py +0 -0
  150. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/04_multi_step.py +0 -0
  151. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/05_persistence.py +0 -0
  152. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/06_llm_integration.py +0 -0
  153. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/07_react_agent.py +0 -0
  154. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/examples/README.md +0 -0
  155. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/mkdocs.yml +0 -0
  156. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/pytest.ini +0 -0
  157. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/scripts/backfill_diary_edges.py +0 -0
  158. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/scripts/generate_llms_full.py +0 -0
  159. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/__init__.py +0 -0
  160. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automation_queries.py +0 -0
  161. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/__init__.py +0 -0
  162. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/adapters.py +0 -0
  163. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/attention.py +0 -0
  164. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/bundle.py +0 -0
  165. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/bundles/automation-controller/flows/controller.json +0 -0
  166. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/bundles/automation-controller/manifest.json +0 -0
  167. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/commands.py +0 -0
  168. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/controller.py +0 -0
  169. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/ledger.py +0 -0
  170. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/models.py +0 -0
  171. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/automations/service.py +0 -0
  172. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/__init__.py +0 -0
  173. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/config.py +0 -0
  174. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/effect_cancellation.py +0 -0
  175. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/event_keys.py +0 -0
  176. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/health.py +0 -0
  177. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/live_deltas.py +0 -0
  178. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/models.py +0 -0
  179. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/policy.py +0 -0
  180. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/progress_channel.py +0 -0
  181. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/run_attribution.py +0 -0
  182. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/run_identity.py +0 -0
  183. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/run_lifecycle.py +0 -0
  184. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/runtime.py +0 -0
  185. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/spec.py +0 -0
  186. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/tool_scope.py +0 -0
  187. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/core/vars.py +0 -0
  188. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/documents/__init__.py +0 -0
  189. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/documents/charts.py +0 -0
  190. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/documents/docx.py +0 -0
  191. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/documents/pdf.py +0 -0
  192. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/evidence/__init__.py +0 -0
  193. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/evidence/recorder.py +0 -0
  194. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/history_bundle.py +0 -0
  195. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/__init__.py +0 -0
  196. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/act_only.py +0 -0
  197. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/chat.py +0 -0
  198. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/communities.py +0 -0
  199. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/diary.py +0 -0
  200. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/digest.py +0 -0
  201. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/entity_runtime.py +0 -0
  202. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/fingerprint.py +0 -0
  203. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/lease.py +0 -0
  204. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/life.py +0 -0
  205. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/memory_reader.py +0 -0
  206. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/night_voice.py +0 -0
  207. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/phase_graph.py +0 -0
  208. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/phase_spec.py +0 -0
  209. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/prelude.py +0 -0
  210. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/prompt_overlay.py +0 -0
  211. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/reflection.py +0 -0
  212. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/spec/entity_phases.vendored.json +0 -0
  213. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/substrate.py +0 -0
  214. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/tool_effects.py +0 -0
  215. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/tool_policy.py +0 -0
  216. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/tools.py +0 -0
  217. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/identity/visit_workflow.py +0 -0
  218. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/__init__.py +0 -0
  219. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/__init__.py +0 -0
  220. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/agora_tools.py +0 -0
  221. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/comms_facade.py +0 -0
  222. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/config_facade.py +0 -0
  223. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/constants.py +0 -0
  224. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/data_registry_facade.py +0 -0
  225. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/default_tools.py +0 -0
  226. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/discovery_facade.py +0 -0
  227. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/effect_handlers.py +0 -0
  228. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/embeddings_client.py +0 -0
  229. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/factory.py +0 -0
  230. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/host_facade.py +0 -0
  231. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/llm_client.py +0 -0
  232. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/local_helper_tools.py +0 -0
  233. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/logging.py +0 -0
  234. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/media_subprocess.py +0 -0
  235. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/observability.py +0 -0
  236. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/output_specs.py +0 -0
  237. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/run_facade.py +0 -0
  238. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/session_attachments.py +0 -0
  239. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/summarizer.py +0 -0
  240. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/telegram_facade.py +0 -0
  241. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/tool_effects.py +0 -0
  242. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/tool_executor.py +0 -0
  243. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/tool_inventory_facade.py +0 -0
  244. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractcore/workspace_scoped_tools.py +0 -0
  245. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/__init__.py +0 -0
  246. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/brain_handlers.py +0 -0
  247. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/effect_handlers.py +0 -0
  248. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/identity_support.py +0 -0
  249. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/integrations/abstractmemory/seam_handlers.py +0 -0
  250. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/__init__.py +0 -0
  251. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/active_context.py +0 -0
  252. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/active_memory.py +0 -0
  253. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/compaction.py +0 -0
  254. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/kg_packets.py +0 -0
  255. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/memact_composer.py +0 -0
  256. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/recall_levels.py +0 -0
  257. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/memory/token_budget.py +0 -0
  258. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/rendering/__init__.py +0 -0
  259. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/rendering/agent_trace_report.py +0 -0
  260. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/rendering/json_stringify.py +0 -0
  261. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/__init__.py +0 -0
  262. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/convenience.py +0 -0
  263. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/multi_store.py +0 -0
  264. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/registry.py +0 -0
  265. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/scheduler/scheduler.py +0 -0
  266. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/session_history.py +0 -0
  267. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/session_turns.py +0 -0
  268. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/__init__.py +0 -0
  269. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/artifacts.py +0 -0
  270. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/base.py +0 -0
  271. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/commands.py +0 -0
  272. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/in_memory.py +0 -0
  273. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/json_files.py +0 -0
  274. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/lease.py +0 -0
  275. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/ledger_chain.py +0 -0
  276. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/ledger_slim.py +0 -0
  277. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/observable.py +0 -0
  278. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/offloading.py +0 -0
  279. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/serialize.py +0 -0
  280. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/snapshots.py +0 -0
  281. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/sqlite.py +0 -0
  282. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/storage/steer_sidecar.py +0 -0
  283. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/__init__.py +0 -0
  284. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/manual.py +0 -0
  285. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/protocol.py +0 -0
  286. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/registry.py +0 -0
  287. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/triggers/schedule.py +0 -0
  288. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/turn_grounding.py +0 -0
  289. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/utils/__init__.py +0 -0
  290. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/utils/atomic_files.py +0 -0
  291. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/utils/file_filters.py +0 -0
  292. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/utils/workspace_paths.py +0 -0
  293. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/__init__.py +0 -0
  294. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/__init__.py +0 -0
  295. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/agent_adapter.py +0 -0
  296. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/context_adapter.py +0 -0
  297. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/control_adapter.py +0 -0
  298. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/effect_adapter.py +0 -0
  299. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/event_adapter.py +0 -0
  300. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/function_adapter.py +0 -0
  301. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/memact_adapter.py +0 -0
  302. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/subflow_adapter.py +0 -0
  303. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/adapters/variable_adapter.py +0 -0
  304. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/compiler.py +0 -0
  305. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/flow.py +0 -0
  306. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/__init__.py +0 -0
  307. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/agent_ids.py +0 -0
  308. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/builtins.py +0 -0
  309. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/code_executor.py +0 -0
  310. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/execution_metrics.py +0 -0
  311. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/executor.py +0 -0
  312. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/function_library.py +0 -0
  313. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/models.py +0 -0
  314. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/multi_entry_lowering.py +0 -0
  315. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/visualflow_compiler/visual/pin_expressions.py +0 -0
  316. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/__init__.py +0 -0
  317. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/models.py +0 -0
  318. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/packer.py +0 -0
  319. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/reader.py +0 -0
  320. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/src/abstractruntime/workflow_bundle/registry.py +0 -0
  321. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/README.md +0 -0
  322. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/automation_harness.py +0 -0
  323. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/conftest.py +0 -0
  324. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_comms_facade.py +0 -0
  325. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_host_facade.py +0 -0
  326. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_run_facade.py +0 -0
  327. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_abstractcore_telegram_facade.py +0 -0
  328. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_active_context_policy.py +0 -0
  329. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_active_memory.py +0 -0
  330. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_agora_agent_alias_identity.py +0 -0
  331. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_agora_tools_http.py +0 -0
  332. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_analyze_media_addressing_and_walling.py +0 -0
  333. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_answer_user_effect.py +0 -0
  334. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_artifacts.py +0 -0
  335. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_commands.py +0 -0
  336. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_controller.py +0 -0
  337. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_controller_recovery.py +0 -0
  338. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_definition.py +0 -0
  339. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_discussion_isolation.py +0 -0
  340. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_growing_context.py +0 -0
  341. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_index.py +0 -0
  342. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_next_fire.py +0 -0
  343. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_occurrence_recovery.py +0 -0
  344. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_replay_read_only.py +0 -0
  345. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_retry.py +0 -0
  346. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_session_turns.py +0 -0
  347. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_status.py +0 -0
  348. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_automation_tool_approval.py +0 -0
  349. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_browser_probe_target_walling.py +0 -0
  350. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_budget_law_no_unrequested_caps.py +0 -0
  351. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_capability_default_reasoning.py +0 -0
  352. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_chat_summarizer_integration.py +0 -0
  353. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_code_node_restricted_python.py +0 -0
  354. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_command_store.py +0 -0
  355. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_compaction_helpers.py +0 -0
  356. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_compaction_summarizer_route.py +0 -0
  357. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_config_facade_models_engines.py +0 -0
  358. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_control_adapter_while.py +0 -0
  359. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_controller_bundle_packaged.py +0 -0
  360. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_crash_ordering_inversions.py +0 -0
  361. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_create_if_absent.py +0 -0
  362. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_data_registry_facade.py +0 -0
  363. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_camera_gating.py +0 -0
  364. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_comms_gating.py +0 -0
  365. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_include_skim_files.py +0 -0
  366. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_include_skim_folders.py +0 -0
  367. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_include_skim_web.py +0 -0
  368. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_default_tools_search_files_executor.py +0 -0
  369. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_diary_capture.py +0 -0
  370. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_diary_write_rescue.py +0 -0
  371. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_directory_lease.py +0 -0
  372. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_disabled_toolsets_seam.py +0 -0
  373. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_discovery_survives_unbuildable_default.py +0 -0
  374. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_discovery_voice_openai_api_key.py +0 -0
  375. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_discussion_session_anchor.py +0 -0
  376. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_document_markdown_tables.py +0 -0
  377. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_document_renderers_hr_quote.py +0 -0
  378. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_durable_toolsets.py +0 -0
  379. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_durable_write_discipline.py +0 -0
  380. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_e2e_tool_calls_idempotency_lmstudio.py +0 -0
  381. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_effect_cancellation.py +0 -0
  382. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_effect_issuance_idempotency.py +0 -0
  383. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_effect_payload_stays_json_serializable.py +0 -0
  384. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_election_consequence_teaching.py +0 -0
  385. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_emergence_experiment.py +0 -0
  386. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_emit_event_uses_wait_index.py +0 -0
  387. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_emit_event_without_workflow_registry.py +0 -0
  388. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_endpoint_profile_route_context.py +0 -0
  389. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_awake_memory_fixes.py +0 -0
  390. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_brain_effects.py +0 -0
  391. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_chat_driver.py +0 -0
  392. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_chat_tools_reflection.py +0 -0
  393. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_diary.py +0 -0
  394. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_execute_tool.py +0 -0
  395. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_fetch_url_tool.py +0 -0
  396. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_history_window.py +0 -0
  397. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_life_loop.py +0 -0
  398. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_memory_richness.py +0 -0
  399. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_phase_graph_conformance.py +0 -0
  400. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_react_visit_window.py +0 -0
  401. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_recent_memories.py +0 -0
  402. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_runtime.py +0 -0
  403. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_search_memory.py +0 -0
  404. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_sleep_bound_and_yield_attribution.py +0 -0
  405. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_substrate_resolution.py +0 -0
  406. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_visit_honesty.py +0 -0
  407. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_workspace_cap.py +0 -0
  408. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_entity_workspace_tools.py +0 -0
  409. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_event_wait_index.py +0 -0
  410. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_every_path_bearing_tool_is_walled.py +0 -0
  411. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_evidence_recorder.py +0 -0
  412. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_evidence_recorder_post_policy_envelope.py +0 -0
  413. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_execute_command_output_offload.py +0 -0
  414. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_execution_capability_discovery.py +0 -0
  415. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_explicit_eject_other_clients.py +0 -0
  416. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_factory_default_retry_policy.py +0 -0
  417. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_factory_timeouts_default_to_abstractcore_config.py +0 -0
  418. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_format_repair_nudge.py +0 -0
  419. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_fresh_install_no_provider.py +0 -0
  420. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_gateway_facades_c4899.py +0 -0
  421. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_git_read_only_refiner.py +0 -0
  422. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_hf_process_residency_merge.py +0 -0
  423. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_history_window_multimodal.py +0 -0
  424. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_hot_path_store_reads.py +0 -0
  425. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_indexed_idempotency_lookup.py +0 -0
  426. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_integration_abstractcore.py +0 -0
  427. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_integrations_abstractcore.py +0 -0
  428. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_json_file_run_store_children_index.py +0 -0
  429. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_json_run_cache_bound.py +0 -0
  430. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_json_store_scan_memo.py +0 -0
  431. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_jsonl_ledger_recovery.py +0 -0
  432. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_kg_learn_and_recall_contract.py +0 -0
  433. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_ledger_chain.py +0 -0
  434. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_ledger_record_slimming.py +0 -0
  435. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_ledger_subscription.py +0 -0
  436. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_live_token_deltas.py +0 -0
  437. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_media_artifact_refs.py +0 -0
  438. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_media_artifact_refs_persist_across_restart.py +0 -0
  439. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_media_uses_source_path_label.py +0 -0
  440. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_payload_shape_refusal.py +0 -0
  441. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_requires_prompt.py +0 -0
  442. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_response_schema_normalization.py +0 -0
  443. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_structured_output_fallback.py +0 -0
  444. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_text_phase_progress.py +0 -0
  445. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_truncation_retry_contract.py +0 -0
  446. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_use_context_appends_turn.py +0 -0
  447. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_call_verbatim_payload_capture.py +0 -0
  448. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_client_grounding_tail.py +0 -0
  449. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_client_media_artifacts.py +0 -0
  450. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_client_system_context.py +0 -0
  451. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_client_tool_call_parsing.py +0 -0
  452. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_retry_classification.py +0 -0
  453. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_llm_streaming_on_token.py +0 -0
  454. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_local_helper_tool_exposure.py +0 -0
  455. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_local_residency_host_sweep.py +0 -0
  456. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_local_runtime_timeout_kwarg_policy.py +0 -0
  457. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_max_iterations_ceiling.py +0 -0
  458. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mcp_remote_tool_executor.py +0 -0
  459. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mcp_worker_logging.py +0 -0
  460. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mcp_worker_security.py +0 -0
  461. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mcp_worker_stdio.py +0 -0
  462. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_media_artifact_resolution.py +0 -0
  463. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_media_capability_default_routing.py +0 -0
  464. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_media_subprocess.py +0 -0
  465. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memact_composer_from_kg_result.py +0 -0
  466. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_appraise_handler.py +0 -0
  467. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_communities.py +0 -0
  468. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_assert_attributes_defaults.py +0 -0
  469. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_packets.py +0 -0
  470. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_predicate_aliasing.py +0 -0
  471. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_query_packetization_restart.py +0 -0
  472. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_query_recall_level_policy.py +0 -0
  473. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_kg_semantic_query_ranking.py +0 -0
  474. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_note_effect.py +0 -0
  475. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_query_effect.py +0 -0
  476. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_query_rich_filters.py +0 -0
  477. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_scope_and_rehydrate_effect.py +0 -0
  478. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_seam_handlers.py +0 -0
  479. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_seam_sqlite_durability.py +0 -0
  480. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_memory_tag_effect.py +0 -0
  481. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mlx_generation_serialization.py +0 -0
  482. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_mlx_process_residency_merge.py +0 -0
  483. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_model_eject_cancel.py +0 -0
  484. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_model_residency_clean_switch.py +0 -0
  485. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_model_residency_control_plane.py +0 -0
  486. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_model_residency_lock_and_context_estimate.py +0 -0
  487. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_multi_store_scheduler.py +0 -0
  488. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_multimodal_abstractcore_integration.py +0 -0
  489. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_native_mlx_application_wiring.py +0 -0
  490. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_native_mlx_execution_controls_live.py +0 -0
  491. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_native_tool_channel.py +0 -0
  492. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_night_voice.py +0 -0
  493. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_no_default_provider_refusal_ux.py +0 -0
  494. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_offload_answer_chain_c4978.py +0 -0
  495. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_offloaded_node_traces_report_unknown_not_zero.py +0 -0
  496. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_offloading.py +0 -0
  497. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_parallel_readonly_tool_execution.py +0 -0
  498. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_pause_resume.py +0 -0
  499. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_pdf_unicode_rendering.py +0 -0
  500. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_personal_cycle.py +0 -0
  501. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_phantom_attachment_index.py +0 -0
  502. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_phase_graph_artifact_control.py +0 -0
  503. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_phase_graph_obedience.py +0 -0
  504. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_phase_vocabulary_migration.py +0 -0
  505. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_pooled_client_strips_construction_cache_key.py +0 -0
  506. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_export_import.py +0 -0
  507. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_fingerprint_stability.py +0 -0
  508. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_modules.py +0 -0
  509. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_posture_inheritance.py +0 -0
  510. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_cache_thinking_and_prompt_only.py +0 -0
  511. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_prompt_overlay.py +0 -0
  512. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_provider_endpoint_profile_resolution.py +0 -0
  513. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_provider_pin_routing_isolation.py +0 -0
  514. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_queryable_run_store.py +0 -0
  515. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_read_file_fallback_to_session_attachments.py +0 -0
  516. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_read_idle_threading.py +0 -0
  517. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_readoption_experiment.py +0 -0
  518. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_real_integration.py +0 -0
  519. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_realize_election.py +0 -0
  520. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_recall_levels_policy.py +0 -0
  521. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_remote_client_cancel.py +0 -0
  522. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_remote_llm_client.py +0 -0
  523. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_remote_speculation_defaults.py +0 -0
  524. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_rendering_agent_trace_report.py +0 -0
  525. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_rendering_json_stringify.py +0 -0
  526. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_report_branding.py +0 -0
  527. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_resume_concurrent_same_wait.py +0 -0
  528. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_retry_idempotency.py +0 -0
  529. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_history_bundle.py +0 -0
  530. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_index_workspace_root.py +0 -0
  531. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_mutation_lock.py +0 -0
  532. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_scoped_tool_policy.py +0 -0
  533. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_run_tool_scope_ceiling.py +0 -0
  534. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_browser_session_boundary.py +0 -0
  535. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_config_max_output_tokens_fallback.py +0 -0
  536. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_default_provider_model_refresh.py +0 -0
  537. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_effect_invocation_trace.py +0 -0
  538. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_health_and_bounded_vars.py +0 -0
  539. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_install_boundary.py +0 -0
  540. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_llm_call_grounding_in_ledger.py +0 -0
  541. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_node_traces.py +0 -0
  542. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_start_seeds_tool_support.py +0 -0
  543. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_runtime_tick_step_gate.py +0 -0
  544. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_scheduler.py +0 -0
  545. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_send_email_refiner.py +0 -0
  546. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_attachments_registry_and_open_tool.py +0 -0
  547. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_history.py +0 -0
  548. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_prompt_cache_attribution.py +0 -0
  549. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_prompt_cache_visibility.py +0 -0
  550. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_route_stamp.py +0 -0
  551. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_session_start_cost.py +0 -0
  552. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_shell_tool_exposure.py +0 -0
  553. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_snapshots.py +0 -0
  554. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_speculation_inheritance.py +0 -0
  555. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_speculation_reaches_provider_construction.py +0 -0
  556. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_sqlite_ledger_store.py +0 -0
  557. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_start_subworkflow_async_wait.py +0 -0
  558. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_start_subworkflow_inherit_context_merges_messages.py +0 -0
  559. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_start_subworkflow_workspace_inheritance.py +0 -0
  560. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_steer_sidecar.py +0 -0
  561. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_storage_deletion.py +0 -0
  562. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_structured_output_schema_enum.py +0 -0
  563. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_subworkflow.py +0 -0
  564. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_terminal_effect_completion.py +0 -0
  565. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_terminal_resume_appends_ledger_completion.py +0 -0
  566. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_thinking_inheritance.py +0 -0
  567. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tick_completion_includes_output_in_ledger.py +0 -0
  568. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_approval_executor.py +0 -0
  569. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_approval_resume_executes.py +0 -0
  570. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_approval_wait_key_identity.py +0 -0
  571. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_calls_idempotency_keys.py +0 -0
  572. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_catalog.py +0 -0
  573. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_descriptor_registry.py +0 -0
  574. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_argument_sanitization.py +0 -0
  575. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_error_output_detection.py +0 -0
  576. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_filename_alias.py +0 -0
  577. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_kwarg_canonicalization.py +0 -0
  578. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_read_file_aliases.py +0 -0
  579. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_executor_timeout.py +0 -0
  580. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_inventory_facade.py +0 -0
  581. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_invoke_effect.py +0 -0
  582. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_policy_and_mounts.py +0 -0
  583. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_tool_wait_allowlist_safety.py +0 -0
  584. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_topic_election_world_model.py +0 -0
  585. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_trace_context_propagation.py +0 -0
  586. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_trigger_registry.py +0 -0
  587. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_trigger_schedule_math.py +0 -0
  588. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_turn_grounding_byte_stability.py +0 -0
  589. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_turn_grounding_carriers_a3.py +0 -0
  590. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_vars_query_effect.py +0 -0
  591. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visit_ab_fixture.py +0 -0
  592. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visit_midturn_elections.py +0 -0
  593. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visit_midturn_resume.py +0 -0
  594. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visit_workflow.py +0 -0
  595. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_output_context_includes_messages.py +0 -0
  596. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_skills_block_passthrough.py +0 -0
  597. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_tool_observations_persist_across_restart.py +0 -0
  598. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_use_context_inherits_attachments.py +0 -0
  599. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_use_context_persists_tool_observations.py +0 -0
  600. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_agent_use_context_persists_turn.py +0 -0
  601. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_entity_memory_nodes.py +0 -0
  602. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_flow_end_effect_only_persistence.py +0 -0
  603. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_llm_call_partial_override.py +0 -0
  604. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_llm_call_schema_ref_resolution.py +0 -0
  605. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_memact_compose_node.py +0 -0
  606. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_memory_kg_query_outputs_propagate.py +0 -0
  607. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_memory_kg_resolve_outputs_propagate.py +0 -0
  608. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_multi_entry_loop_overrides.py +0 -0
  609. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_unknown_node_type_refuses.py +0 -0
  610. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visual_wait_event_deadline_passthrough.py +0 -0
  611. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_add_message_builtin.py +0 -0
  612. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_add_message_node_appends_to_active_context.py +0 -0
  613. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_agora_react_agent.py +0 -0
  614. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_call_tool_node.py +0 -0
  615. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_capability_routes_and_thinking.py +0 -0
  616. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_compiler_basic.py +0 -0
  617. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_context_and_builder_nodes.py +0 -0
  618. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_continue_on_error.py +0 -0
  619. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_edit_json_schema_node.py +0 -0
  620. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_event_inbox_react_agent.py +0 -0
  621. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_file_nodes_workspace.py +0 -0
  622. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_function_library.py +0 -0
  623. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_get_element_node.py +0 -0
  624. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_get_random_element_node.py +0 -0
  625. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_get_var_node.py +0 -0
  626. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_has_tools_builtin.py +0 -0
  627. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_llm_call_context_attachments_map_to_media.py +0 -0
  628. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_llm_call_multimodal_output.py +0 -0
  629. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_make_object_node.py +0 -0
  630. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_media_nodes.py +0 -0
  631. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_memory_effect_nodes.py +0 -0
  632. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_memory_source_pins.py +0 -0
  633. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_pin_expressions.py +0 -0
  634. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_prompt_only.py +0 -0
  635. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_random_nodes.py +0 -0
  636. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_schema_enum_switch.py +0 -0
  637. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_string_contains_replace.py +0 -0
  638. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_visualflow_tool_parameters_node.py +0 -0
  639. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_voice_openai_api_key_path.py +0 -0
  640. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_w4_feelings_lens.py +0 -0
  641. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_wait_event_deadline.py +0 -0
  642. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_wait_event_prompt_metadata.py +0 -0
  643. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_wait_until_streak.py +0 -0
  644. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_wait_until_utc_normalization.py +0 -0
  645. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workflow_bundle_registry.py +0 -0
  646. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_builtin_deny.py +0 -0
  647. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_policy_absolute_reanchor.py +0 -0
  648. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_policy_allowlist_mode.py +0 -0
  649. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_policy_mount_virtual_paths.py +0 -0
  650. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_policy_tool_calls_persist_across_restart.py +0 -0
  651. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_prompt_context.py +0 -0
  652. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_workspace_read_only.py +0 -0
  653. {abstractruntime-0.7.1 → abstractruntime-0.7.2}/tests/test_write_chart.py +0 -0
@@ -11,7 +11,7 @@ The canonical dependency list lives in `pyproject.toml`.
11
11
  - **AbstractMemory** (`>=0.3.0`) — TripleStore models and store contract used by Runtime's `MEMORY_KG_*` effects. Durable/vector backend dependencies such as LanceDB remain selected by hosts.
12
12
 
13
13
  ## Runtime integrations
14
- - **abstractcore** (`abstractcore[remote,tools,vision,voice,audio,music]>=2.15.1`) — LLM, tools, media, and capability integration used by the base `abstractruntime` install; the `apple` and `gpu` extras select `abstractcore[all-apple]` / `abstractcore[all-gpu]` at the same floor (declared in `pyproject.toml`, implementation under `src/abstractruntime/integrations/abstractcore/*`, docs: `docs/integrations/abstractcore.md`).
14
+ - **abstractcore** (`abstractcore>=2.19.0`) — LLM, tools, media, and capability integration used by the base `abstractruntime` install (AbstractCore's light install); the `apple` and `gpu` extras select `abstractcore[apple]` / `abstractcore[gpu]` at the same floor (declared in `pyproject.toml`, implementation under `src/abstractruntime/integrations/abstractcore/*`, docs: `docs/integrations/abstractcore.md`).
15
15
  - The AbstractCore integration uses **httpx** for remote mode (`src/abstractruntime/integrations/abstractcore/llm_client.py`) and **pydantic** for structured validation (`src/abstractruntime/integrations/abstractcore/effect_handlers.py`). These are provided by AbstractCore’s dependency set.
16
16
  - The `tools` extra of AbstractCore backs the base Runtime toolset and the `abstractruntime-mcp-worker` entry point.
17
17
  - **RestrictedPython** (`>=7.0`, core install) — sandbox for VisualFlow “Code” nodes and pin expressions (`src/abstractruntime/visualflow_compiler/visual/code_executor.py`).
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.7.2] - 2026-09-29
11
+
12
+ ### Changed
13
+
14
+ - **Dependencies follow AbstractCore's three install settings.** The base install requires
15
+ `abstractcore>=2.19.0` (its light install: remote providers, built-in tools and the MCP worker's
16
+ web tools, media inputs, and the voice/vision/music plugins), `abstractruntime[apple]` requires
17
+ `abstractcore[apple]>=2.19.0` and `abstractruntime[gpu]` requires `abstractcore[gpu]>=2.19.0`.
18
+ What gets installed is unchanged; the deprecated AbstractCore extras (`remote`, `tools`, `voice`,
19
+ `all-apple`, `all-gpu`, ...) are no longer named.
20
+ - **`openai` may be 2.x (`openai<3.0.0,>=1.109.1`).** The `<2.0.0` cap held vLLM at an old release
21
+ in the `gpu` setting (newer vLLM needs `openai>=2`), and that release does not start with
22
+ Transformers 5.
23
+ - **The MCP worker's startup tip names the right install.** When `abstractruntime-mcp-worker` fails
24
+ to start, its tip says that the web tools come with AbstractCore's light install and suggests
25
+ `pip install -U abstractcore` to repair it, instead of pointing to the deprecated
26
+ `abstractcore[tools]` extra.
27
+
28
+ ### Fixed
29
+
30
+ - **The local STT model catalog lists each engine's own models.** When AbstractVoice's catalog
31
+ carried no per-provider STT map (for example with no OpenAI key),
32
+ `GET /api/gateway/audio/transcriptions/models` listed OpenAI's `gpt-4o-transcribe` as a
33
+ faster-whisper model and reported it as `active_model`. `local_list_stt_models()` now asks each
34
+ STT provider for its own list (without loading an engine) and takes `active_model` from the active
35
+ provider's list.
36
+
10
37
  ## [0.7.1] - 2026-09-28
11
38
 
12
39
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: AbstractRuntime
3
- Version: 0.7.1
3
+ Version: 0.7.2
4
4
  Summary: AbstractRuntime: a durable graph runner designed to pair with AbstractCore.
5
5
  Project-URL: AbstractCore (website), https://www.abstractcore.ai/
6
6
  Project-URL: AbstractRuntime (GitHub), https://github.com/lpalbou/abstractruntime
@@ -20,12 +20,12 @@ Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3.13
22
22
  Requires-Python: >=3.10
23
- Requires-Dist: abstractcore[audio,music,remote,tools,vision,voice]>=2.18.0
23
+ Requires-Dist: abstractcore>=2.19.0
24
24
  Requires-Dist: abstractmemory>=0.3.0
25
25
  Requires-Dist: abstractsemantics>=0.0.5
26
26
  Requires-Dist: anyio<5.0.0,>=4.12.1
27
27
  Requires-Dist: httpx<1.0.0,>=0.28.1
28
- Requires-Dist: openai<2.0.0,>=1.109.1
28
+ Requires-Dist: openai<3.0.0,>=1.109.1
29
29
  Requires-Dist: pandas<3.0.0,>=1.0.0
30
30
  Requires-Dist: pillow<13.0.0,>=10.0.0
31
31
  Requires-Dist: pypdf<7.0.0,>=6.0.0
@@ -35,14 +35,14 @@ Requires-Dist: reportlab<5.0.0,>=4.0.0
35
35
  Requires-Dist: restrictedpython>=7.0
36
36
  Requires-Dist: unstructured[docx,odt,pptx,rtf,xlsx]<0.19.0,>=0.18.32
37
37
  Provides-Extra: apple
38
- Requires-Dist: abstractcore[all-apple]>=2.18.0; extra == 'apple'
38
+ Requires-Dist: abstractcore[apple]>=2.19.0; extra == 'apple'
39
39
  Requires-Dist: setuptools<82.0.0,>=80.10.2; extra == 'apple'
40
40
  Provides-Extra: docs
41
41
  Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
42
42
  Requires-Dist: mkdocs>=1.6.0; extra == 'docs'
43
43
  Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
44
44
  Provides-Extra: gpu
45
- Requires-Dist: abstractcore[all-gpu]>=2.18.0; extra == 'gpu'
45
+ Requires-Dist: abstractcore[gpu]>=2.19.0; extra == 'gpu'
46
46
  Requires-Dist: setuptools<82.0.0,>=77.0.3; extra == 'gpu'
47
47
  Provides-Extra: test
48
48
  Requires-Dist: pytest>=7.0.0; extra == 'test'
@@ -54,7 +54,7 @@ Description-Content-Type: text/markdown
54
54
 
55
55
  It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
56
56
 
57
- **Version:** 0.7.1 • **Python:** 3.10+
57
+ **Version:** 0.7.2 • **Python:** 3.10+
58
58
 
59
59
  **Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
60
60
 
@@ -82,8 +82,8 @@ Remote-light runtime:
82
82
  pip install abstractruntime
83
83
  ```
84
84
 
85
- The base install includes AbstractCore 2.18.0 or newer with remote provider,
86
- tool, vision, voice, audio, and music integration, plus the
85
+ The base install includes AbstractCore 2.19.0 or newer (its light install:
86
+ remote providers, tools, vision, voice, audio, and music integration), plus the
87
87
  `abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
88
88
  default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
89
89
  sentence-transformer embeddings are not selected unless you choose a hardware
@@ -146,7 +146,7 @@ state = rt.resume(
146
146
  assert state.status.value == "completed"
147
147
  ```
148
148
 
149
- ## What’s included (v0.7.1)
149
+ ## What’s included (v0.7.2)
150
150
 
151
151
  Kernel (import-light):
152
152
  - workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
@@ -4,7 +4,7 @@
4
4
 
5
5
  It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
6
6
 
7
- **Version:** 0.7.1 • **Python:** 3.10+
7
+ **Version:** 0.7.2 • **Python:** 3.10+
8
8
 
9
9
  **Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
10
10
 
@@ -32,8 +32,8 @@ Remote-light runtime:
32
32
  pip install abstractruntime
33
33
  ```
34
34
 
35
- The base install includes AbstractCore 2.18.0 or newer with remote provider,
36
- tool, vision, voice, audio, and music integration, plus the
35
+ The base install includes AbstractCore 2.19.0 or newer (its light install:
36
+ remote providers, tools, vision, voice, audio, and music integration), plus the
37
37
  `abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
38
38
  default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
39
39
  sentence-transformer embeddings are not selected unless you choose a hardware
@@ -96,7 +96,7 @@ state = rt.resume(
96
96
  assert state.status.value == "completed"
97
97
  ```
98
98
 
99
- ## What’s included (v0.7.1)
99
+ ## What’s included (v0.7.2)
100
100
 
101
101
  Kernel (import-light):
102
102
  - workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
@@ -277,7 +277,7 @@ from Core route resolution and persisted from `LLM_CALL` results.
277
277
 
278
278
  ### AbstractCore (LLM + tools)
279
279
 
280
- Requires: `pip install abstractruntime` (AbstractCore 2.18.0 or newer is part of the base install).
280
+ Requires: `pip install abstractruntime` (AbstractCore 2.19.0 or newer is part of the base install).
281
281
 
282
282
  Implementation: `src/abstractruntime/integrations/abstractcore/*`.
283
283
 
@@ -1,7 +1,7 @@
1
1
  # AbstractRuntime — Architecture
2
2
 
3
- > Updated: 2026-09-28
4
- > Version: 0.7.1
3
+ > Updated: 2026-09-29
4
+ > Version: 0.7.2
5
5
  > Scope: this describes **what is implemented in this repository**.
6
6
 
7
7
  AbstractRuntime is a **durable workflow runtime**: it executes workflow graphs as a persisted state machine with explicit waits (user, time, events, jobs, subworkflows). A run can pause for hours/days and resume **without** keeping Python stacks/coroutines alive.
@@ -20,7 +20,7 @@ Fix:
20
20
  - Install or upgrade the base Runtime package. LLM/tools integration, common
21
21
  remote-light multimodal dependencies, and the MCP worker entry point are part
22
22
  of the base install.
23
- - The current AbstractCore integration expects `abstractcore>=2.18.0`.
23
+ - The current AbstractCore integration expects `abstractcore>=2.19.0`.
24
24
 
25
25
  Verify:
26
26
 
@@ -52,7 +52,7 @@ See llms.txt for the linked index.
52
52
 
53
53
  It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
54
54
 
55
- **Version:** 0.7.1 • **Python:** 3.10+
55
+ **Version:** 0.7.2 • **Python:** 3.10+
56
56
 
57
57
  **Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
58
58
 
@@ -80,8 +80,8 @@ Remote-light runtime:
80
80
  pip install abstractruntime
81
81
  ```
82
82
 
83
- The base install includes AbstractCore 2.18.0 or newer with remote provider,
84
- tool, vision, voice, audio, and music integration, plus the
83
+ The base install includes AbstractCore 2.19.0 or newer (its light install:
84
+ remote providers, tools, vision, voice, audio, and music integration), plus the
85
85
  `abstractruntime-mcp-worker` entry point. It keeps inference remote/light by
86
86
  default: local engines such as MLX, vLLM, HuggingFace/Torch, Diffusers, and
87
87
  sentence-transformer embeddings are not selected unless you choose a hardware
@@ -144,7 +144,7 @@ state = rt.resume(
144
144
  assert state.status.value == "completed"
145
145
  ```
146
146
 
147
- ## What’s included (v0.7.1)
147
+ ## What’s included (v0.7.2)
148
148
 
149
149
  Kernel (import-light):
150
150
  - workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
@@ -429,8 +429,8 @@ rt = create_local_runtime(provider="ollama", model="qwen3:4b")
429
429
 
430
430
  # AbstractRuntime — Architecture
431
431
 
432
- > Updated: 2026-09-28
433
- > Version: 0.7.1
432
+ > Updated: 2026-09-29
433
+ > Version: 0.7.2
434
434
  > Scope: this describes **what is implemented in this repository**.
435
435
 
436
436
  AbstractRuntime is a **durable workflow runtime**: it executes workflow graphs as a persisted state machine with explicit waits (user, time, events, jobs, subworkflows). A run can pause for hours/days and resume **without** keeping Python stacks/coroutines alive.
@@ -1132,7 +1132,7 @@ from Core route resolution and persisted from `LLM_CALL` results.
1132
1132
 
1133
1133
  ### AbstractCore (LLM + tools)
1134
1134
 
1135
- Requires: `pip install abstractruntime` (AbstractCore 2.18.0 or newer is part of the base install).
1135
+ Requires: `pip install abstractruntime` (AbstractCore 2.19.0 or newer is part of the base install).
1136
1136
 
1137
1137
  Implementation: `src/abstractruntime/integrations/abstractcore/*`.
1138
1138
 
@@ -1633,7 +1633,7 @@ Fix:
1633
1633
  - Install or upgrade the base Runtime package. LLM/tools integration, common
1634
1634
  remote-light multimodal dependencies, and the MCP worker entry point are part
1635
1635
  of the base install.
1636
- - The current AbstractCore integration expects `abstractcore>=2.18.0`.
1636
+ - The current AbstractCore integration expects `abstractcore>=2.19.0`.
1637
1637
 
1638
1638
  Verify:
1639
1639
 
@@ -5266,7 +5266,7 @@ The canonical dependency list lives in `pyproject.toml`.
5266
5266
  - **AbstractMemory** (`>=0.3.0`) — TripleStore models and store contract used by Runtime's `MEMORY_KG_*` effects. Durable/vector backend dependencies such as LanceDB remain selected by hosts.
5267
5267
 
5268
5268
  ## Runtime integrations
5269
- - **abstractcore** (`abstractcore[remote,tools,vision,voice,audio,music]>=2.15.1`) — LLM, tools, media, and capability integration used by the base `abstractruntime` install; the `apple` and `gpu` extras select `abstractcore[all-apple]` / `abstractcore[all-gpu]` at the same floor (declared in `pyproject.toml`, implementation under `src/abstractruntime/integrations/abstractcore/*`, docs: `docs/integrations/abstractcore.md`).
5269
+ - **abstractcore** (`abstractcore>=2.19.0`) — LLM, tools, media, and capability integration used by the base `abstractruntime` install (AbstractCore's light install); the `apple` and `gpu` extras select `abstractcore[apple]` / `abstractcore[gpu]` at the same floor (declared in `pyproject.toml`, implementation under `src/abstractruntime/integrations/abstractcore/*`, docs: `docs/integrations/abstractcore.md`).
5270
5270
  - The AbstractCore integration uses **httpx** for remote mode (`src/abstractruntime/integrations/abstractcore/llm_client.py`) and **pydantic** for structured validation (`src/abstractruntime/integrations/abstractcore/effect_handlers.py`). These are provided by AbstractCore’s dependency set.
5271
5271
  - The `tools` extra of AbstractCore backs the base Runtime toolset and the `abstractruntime-mcp-worker` entry point.
5272
5272
  - **RestrictedPython** (`>=7.0`, core install) — sandbox for VisualFlow “Code” nodes and pin expressions (`src/abstractruntime/visualflow_compiler/visual/code_executor.py`).
@@ -3,10 +3,10 @@
3
3
  > Durable workflow runtime (interrupt → checkpoint → resume) with an append-only execution ledger.
4
4
 
5
5
  - Python: 3.10+ (see `pyproject.toml`)
6
- - Version: 0.7.1
6
+ - Version: 0.7.2
7
7
  - Ecosystem: [AbstractFramework](https://github.com/lpalbou/AbstractFramework) umbrella, integrates with [AbstractCore](https://github.com/lpalbou/abstractcore)
8
8
  - Hard invariant: `RunState.vars` must be JSON-serializable (`src/abstractruntime/core/models.py`)
9
- - Current AbstractCore baseline: base `abstractruntime` installs `abstractcore[remote,tools,vision,voice,audio,music]>=2.18.0`
9
+ - Current AbstractCore baseline: base `abstractruntime` requires AbstractCore 2.19.0 or newer with its light install (remote providers, tools and the MCP worker, media routing); `abstractruntime[apple]` and `abstractruntime[gpu]` require AbstractCore's `apple` and `gpu` settings (`pyproject.toml`)
10
10
  - Install profiles: base `abstractruntime` is remote-light with MCP, generated media routing, and Runtime-owned permissive PDF read/write nodes; `abstractruntime[apple]` and `abstractruntime[gpu]` add local inferencer stacks.
11
11
  - Config boundary: Runtime does not read `ABSTRACTGATEWAY_*`; Gateway-owned config should be translated into explicit Runtime inputs or Runtime-owned env names. Hosts can attach `resolve_provider_endpoint_profile(provider_id)` to the LLM client; Runtime treats it as an optional resolver hook, injects transient provider/base URL/key params for the call, and redacts secret-like params from persisted observability.
12
12
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "AbstractRuntime"
7
- version = "0.7.1"
7
+ version = "0.7.2"
8
8
  description = "AbstractRuntime: a durable graph runner designed to pair with AbstractCore."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -48,10 +48,11 @@ dependencies = [
48
48
  # package extras owned by AbstractMemory and selected by hosts such as Gateway.
49
49
  "AbstractMemory>=0.3.0",
50
50
  # Runtime's base install is the remote-light workflow host: LLM/tool effects,
51
- # MCP worker support, and multimodal routing are available without selecting
52
- # local inference engines.
53
- "abstractcore[remote,tools,vision,voice,audio,music]>=2.18.0",
54
- "openai<2.0.0,>=1.109.1",
51
+ # MCP worker support, and multimodal routing come with AbstractCore's light
52
+ # install (remote providers, built-in tools, media inputs, voice/vision/music
53
+ # plugins) without selecting local inference engines.
54
+ "abstractcore>=2.19.0",
55
+ "openai<3.0.0,>=1.109.1",
55
56
  "httpx<1.0.0,>=0.28.1",
56
57
  "anyio<5.0.0,>=4.12.1",
57
58
  "Pillow<13.0.0,>=10.0.0",
@@ -67,12 +68,12 @@ dependencies = [
67
68
 
68
69
  [project.optional-dependencies]
69
70
  apple = [
70
- "abstractcore[all-apple]>=2.18.0",
71
+ "abstractcore[apple]>=2.19.0",
71
72
  "setuptools<82.0.0,>=80.10.2",
72
73
  ]
73
74
 
74
75
  gpu = [
75
- "abstractcore[all-gpu]>=2.18.0",
76
+ "abstractcore[gpu]>=2.19.0",
76
77
  # vLLM 0.9-0.19 caps setuptools below 80; 77.0.3 is still a modern floor.
77
78
  "setuptools<82.0.0,>=77.0.3",
78
79
  ]
@@ -0,0 +1,24 @@
1
+ ### Changed
2
+
3
+ - **Dependencies follow AbstractCore's three install settings.** The base install requires
4
+ `abstractcore>=2.19.0` (its light install: remote providers, built-in tools and the MCP worker's
5
+ web tools, media inputs, and the voice/vision/music plugins), `abstractruntime[apple]` requires
6
+ `abstractcore[apple]>=2.19.0` and `abstractruntime[gpu]` requires `abstractcore[gpu]>=2.19.0`.
7
+ What gets installed is unchanged; the deprecated AbstractCore extras (`remote`, `tools`, `voice`,
8
+ `all-apple`, `all-gpu`, ...) are no longer named.
9
+ - **`openai` may be 2.x (`openai<3.0.0,>=1.109.1`).** The `<2.0.0` cap held vLLM at an old release
10
+ in the `gpu` setting (newer vLLM needs `openai>=2`), and that release does not start with
11
+ Transformers 5.
12
+ - **The MCP worker's startup tip names the right install.** When `abstractruntime-mcp-worker` fails
13
+ to start, its tip says that the web tools come with AbstractCore's light install and suggests
14
+ `pip install -U abstractcore` to repair it, instead of pointing to the deprecated
15
+ `abstractcore[tools]` extra.
16
+
17
+ ### Fixed
18
+
19
+ - **The local STT model catalog lists each engine's own models.** When AbstractVoice's catalog
20
+ carried no per-provider STT map (for example with no OpenAI key),
21
+ `GET /api/gateway/audio/transcriptions/models` listed OpenAI's `gpt-4o-transcribe` as a
22
+ faster-whisper model and reported it as `active_model`. `local_list_stt_models()` now asks each
23
+ STT provider for its own list (without loading an engine) and takes `active_model` from the active
24
+ provider's list.
@@ -1295,16 +1295,35 @@ def local_list_stt_models(
1295
1295
  )
1296
1296
  active_provider = str(catalog.get("active_stt_provider") or "").strip()
1297
1297
  if cleaned and not models_by_provider and (active_provider or providers):
1298
- models_by_provider[active_provider or providers[0]] = cleaned
1298
+ # The catalog carried no per-provider STT map (AbstractVoice's light
1299
+ # catalog, e.g. when the default OpenAI engine has no key). The flat
1300
+ # list spans every engine, so attributing it to the active provider
1301
+ # advertised OpenAI's gpt-4o-transcribe as a faster-whisper model and
1302
+ # as the active model (framework backlog 0989). Ask each provider for
1303
+ # its own list instead; that call is engine-free.
1304
+ for provider_id in _dedupe_strings(([active_provider] if active_provider else []) + providers):
1305
+ try:
1306
+ provider_models = voice.list_stt_models(provider=provider_id)
1307
+ except Exception:
1308
+ continue
1309
+ provider_cleaned = _dedupe_strings([str(item) for item in list(provider_models or [])])
1310
+ if provider_cleaned:
1311
+ models_by_provider[provider_id] = provider_cleaned
1312
+ active_provider_value = active_provider or (providers[0] if providers else None)
1313
+ if active_provider_value and models_by_provider:
1314
+ active_provider_models = models_by_provider.get(active_provider_value) or []
1315
+ active_model = active_provider_models[0] if active_provider_models else None
1316
+ else:
1317
+ active_model = cleaned[0] if cleaned else None
1299
1318
  payload = _with_status(
1300
1319
  {
1301
1320
  "models": cleaned,
1302
- "active_model": cleaned[0] if cleaned else None,
1321
+ "active_model": active_model,
1303
1322
  "providers": providers,
1304
1323
  "available_providers": list(catalog.get("available_stt_providers") or providers)
1305
1324
  if isinstance(catalog.get("available_stt_providers"), list)
1306
1325
  else providers,
1307
- "active_provider": active_provider or (providers[0] if providers else None),
1326
+ "active_provider": active_provider_value,
1308
1327
  "models_by_provider": models_by_provider,
1309
1328
  "stt_models_by_provider": models_by_provider,
1310
1329
  "provider_models": _provider_models_from_mapping(models_by_provider),
@@ -536,7 +536,8 @@ def main(argv: Optional[Sequence[str]] = None) -> int:
536
536
  "Failed to start MCP worker.\n\n"
537
537
  f"Error: {e}\n\n"
538
538
  "Tips:\n"
539
- "- Ensure AbstractCore is installed (and, for web tools, `abstractcore[tools]`).\n"
539
+ "- Ensure AbstractCore is installed; the web tools are part of its light install "
540
+ "(repair with `pip install -U abstractcore`).\n"
540
541
  "- Choose toolsets explicitly (e.g. `--toolsets files` or `--toolsets files,system`).\n"
541
542
  )
542
543
  return 1
@@ -1478,3 +1478,45 @@ def test_remote_discovery_marks_transport_failures_as_route_unavailable() -> Non
1478
1478
  assert payload["available"] is False
1479
1479
  assert payload["route_available"] is False
1480
1480
  assert payload["error"] == "connection refused"
1481
+
1482
+
1483
+ def test_local_stt_catalog_without_provider_map_asks_each_provider(monkeypatch) -> None:
1484
+ """Framework backlog 0989: AbstractVoice's light catalog carries no per-provider STT
1485
+ map; the flat model list spans every engine and was attributed wholesale to the
1486
+ active provider, advertising OpenAI's gpt-4o-transcribe as faster-whisper's model
1487
+ and as the active model."""
1488
+
1489
+ from abstractruntime.integrations.abstractcore import discovery_queries
1490
+
1491
+ per_provider = {
1492
+ None: ["gpt-4o-transcribe", "whisper-1", "tiny", "base", "Qwen/Qwen3-ASR-1.7B"],
1493
+ "faster-whisper": ["tiny", "base"],
1494
+ "transformers-asr": ["Qwen/Qwen3-ASR-1.7B"],
1495
+ }
1496
+
1497
+ class _FakeVoice:
1498
+ def voice_catalog(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
1499
+ _ = args, kwargs
1500
+ return {
1501
+ "active_stt_provider": "faster-whisper",
1502
+ "stt_providers": ["faster-whisper", "transformers-asr"],
1503
+ "stt_models_by_provider": {},
1504
+ }
1505
+
1506
+ def list_stt_models(self, provider: str | None = None) -> List[str]:
1507
+ return list(per_provider.get(provider, []))
1508
+
1509
+ class _FakeRegistry:
1510
+ voice = _FakeVoice()
1511
+
1512
+ monkeypatch.setattr(discovery_queries, "_runtime_capability_registry", lambda **_kwargs: _FakeRegistry())
1513
+
1514
+ payload = discovery_queries.local_list_stt_models()
1515
+
1516
+ assert payload["active_provider"] == "faster-whisper"
1517
+ assert payload["active_model"] == "tiny"
1518
+ assert payload["stt_models_by_provider"] == {
1519
+ "faster-whisper": ["tiny", "base"],
1520
+ "transformers-asr": ["Qwen/Qwen3-ASR-1.7B"],
1521
+ }
1522
+ assert "gpt-4o-transcribe" not in payload["stt_models_by_provider"]["faster-whisper"]
@@ -14,7 +14,7 @@ import pytest
14
14
 
15
15
  from abstractruntime.integrations.abstractcore import discovery_queries as dq
16
16
 
17
- # AbstractVoice is a declared dependency (abstractcore[voice] in the base install):
17
+ # AbstractVoice is a declared dependency (through AbstractCore's light install):
18
18
  # the first two tests run the real catalog, engine-free, with no key configured.
19
19
 
20
20
 
@@ -3,6 +3,8 @@ from __future__ import annotations
3
3
  import re
4
4
  from pathlib import Path
5
5
 
6
+ import pytest
7
+
6
8
 
7
9
  def _extract_optional_dependency_block(text: str, *, key: str) -> str:
8
10
  lines = text.splitlines()
@@ -50,8 +52,10 @@ def test_runtime_base_is_remote_light_with_multimodal_and_mcp_support() -> None:
50
52
  assert "abstractcore = [" not in text
51
53
  assert "multimodal = [" not in text
52
54
  assert "mcp-worker = [" not in text
53
- assert '"abstractcore[remote,tools,vision,voice,audio,music]>=2.18.0"' in text
54
- assert '"openai<2.0.0,>=1.109.1"' in text
55
+ assert '"abstractcore>=2.19.0"' in text
56
+ # Only AbstractCore's three install settings: light (no extra), apple, gpu.
57
+ assert re.findall(r'"abstractcore\[([^\]]*)\]', text) == ["apple", "gpu"]
58
+ assert '"openai<3.0.0,>=1.109.1"' in text
55
59
  assert '"httpx<1.0.0,>=0.28.1"' in text
56
60
  assert '"anyio<5.0.0,>=4.12.1"' in text
57
61
  assert '"Pillow<13.0.0,>=10.0.0"' in text
@@ -85,17 +89,42 @@ def test_runtime_exposes_only_apple_and_gpu_user_install_profiles() -> None:
85
89
  apple_block = _extract_optional_dependency_block(text, key="apple")
86
90
  gpu_block = _extract_optional_dependency_block(text, key="gpu")
87
91
 
88
- assert '"abstractcore[all-apple]>=2.18.0"' in apple_block
89
- assert '"abstractcore[all-gpu]>=2.18.0"' in gpu_block
92
+ assert '"abstractcore[apple]>=2.19.0"' in apple_block
93
+ assert '"abstractcore[gpu]>=2.19.0"' in gpu_block
90
94
  assert '"setuptools<82.0.0,>=80.10.2"' in apple_block
91
95
  assert '"setuptools<82.0.0,>=77.0.3"' in gpu_block
92
96
  assert "pymupdf" not in apple_block.lower()
93
97
  assert "pymupdf" not in gpu_block.lower()
94
98
 
99
+
100
+ def test_sibling_abstractcore_profiles_keep_pypdf_and_exclude_pymupdf() -> None:
101
+ """Workspace-only check: the AbstractCore profiles Runtime's apple/gpu extras select
102
+ install the permissive pypdf reader and never PyMuPDF. Skipped outside the monorepo."""
103
+
104
+ pyproject = Path(__file__).resolve().parents[1] / "pyproject.toml"
95
105
  core_pyproject = pyproject.resolve().parents[1] / "abstractcore" / "pyproject.toml"
96
- if core_pyproject.exists():
97
- core_text = core_pyproject.read_text(encoding="utf-8")
98
- for core_profile in ("all-apple", "all-gpu"):
99
- core_block = _extract_optional_dependency_block(core_text, key=core_profile)
100
- assert '"pypdf>=6.0.0,<7.0.0"' in core_block
101
- assert "pymupdf" not in core_block.lower()
106
+ if not core_pyproject.exists():
107
+ pytest.skip("no sibling abstractcore checkout")
108
+ tomllib = pytest.importorskip("tomllib")
109
+ core = tomllib.loads(core_pyproject.read_text(encoding="utf-8"))["project"]
110
+ extras = core["optional-dependencies"]
111
+
112
+ def resolve(profile: str, seen: tuple[str, ...] = ()) -> list[str]:
113
+ # Follow self-referencing aliases such as all-apple = ["abstractcore[apple]"].
114
+ requirements: list[str] = []
115
+ for req in extras[profile]:
116
+ match = re.fullmatch(r"abstractcore\[([^\]]+)\]", req.strip())
117
+ if match:
118
+ for inner in match.group(1).split(","):
119
+ inner = inner.strip()
120
+ assert inner not in seen, f"alias cycle through {inner}"
121
+ requirements += resolve(inner, seen + (profile,))
122
+ else:
123
+ requirements.append(req)
124
+ return requirements
125
+
126
+ base = core["dependencies"]
127
+ for core_profile in ("apple", "gpu"):
128
+ installed = base + resolve(core_profile)
129
+ assert any(req.replace(" ", "").startswith("pypdf>=6.0.0") for req in installed), core_profile
130
+ assert not any("pymupdf" in req.lower() for req in installed), core_profile
@@ -1,14 +0,0 @@
1
- ### Fixed
2
-
3
- - **Images in replayed history stay images.** When the history window drops older turns, it writes a
4
- `[#TRUNCATION: ...]` notice at the start of the oldest kept message. If that message held a list of content parts
5
- (text plus an image, `[{"type": "text", ...}, {"type": "image_url", ...}]`), the notice turned the whole list into
6
- one string, so the model received the image's base64 as text. The notice is now added as one text part and every
7
- other part is left exactly as it was. A message that starts with its `<runtime_metadata>` envelope keeps it first.
8
- This affects `announce_dropped` and `window_transcript`, and so the gateway's `/runs/start` client-context window and
9
- any replay that keeps images. Content of any other type is left untouched and a warning is logged.
10
- - **An image no longer counts as tens of thousands of tokens in the window.** `estimate_message_tokens` turned a
11
- content-part list into a string, so a 150 KB inline image counted about 50,000 tokens and pushed every older turn out
12
- of the history window. Text parts now count their text, and each media part (image, audio, file) counts a flat 512
13
- tokens (`MEDIA_PART_TOKEN_ESTIMATE`, AbstractCore's per-image fallback). The input-budget trim
14
- (`trim_messages_to_max_input_tokens`) uses the same estimate.
File without changes