AbstractRuntime 0.4.7__tar.gz → 0.4.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/ACKNOWLEDGMENTS.md +4 -3
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/CHANGELOG.md +26 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/PKG-INFO +25 -8
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/README.md +11 -3
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/api.md +1 -1
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/architecture.md +3 -3
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/proposed/2026-05-08_runtime_gateway_env_namespace_cleanup.md +4 -4
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/proposed/2026-05-08_runtime_gateway_install_boundary.md +23 -12
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/getting-started.md +1 -1
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/integrations/abstractcore.md +2 -2
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/limits.md +1 -1
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/proposal.md +1 -1
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/provenance.md +1 -1
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/pyproject.toml +25 -5
- abstractruntime-0.4.9/release-notes.md +9 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_packaging_extras.py +21 -8
- abstractruntime-0.4.7/release-notes.md +0 -11
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/.github/workflows/ci.yml +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/.github/workflows/release.yml +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/.gitignore +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/CONTRIBUTING.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/LICENSE +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/ROADMAP.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/SECURITY.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/README.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/adr/0001_layered_coupling_with_abstractcore.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/adr/0002_execution_modes_local_remote_hybrid.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/adr/0003_provenance_tamper_evident_hash_chain.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/adr/README.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/README.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/001_runtime_kernel.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/003_wait_primitives.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/004_scheduler_driver.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/005_abstractcore_integration.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/006_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/007_provenance_hash_chain.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/009_artifact_store.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/010_examples_and_composition.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/011_subworkflow_support.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/012_run_store_query_and_scheduler_support.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/013_effect_retries_and_idempotency.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/016_runtime_aware_parameters.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/001_integrations_abstractcore.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/001_runtime_kernel.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/002_persistence_and_ledger.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/002_snapshots_bookmarks.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/003_provenance_ledger_chain.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/003_wait_resume_and_scheduler.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/004_effect_handlers_and_integrations.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/004_tests.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/005_docs_updates.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/005_examples_and_composition.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/006_ai_fingerprint_and_provenance.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/DEPRECATED_README.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/README.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/abstractruntime_docs_final_02a7373b.plan.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/planned/008_signatures_and_keys.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/planned/014_remote_tool_worker_executor.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/planned/015_agent_integration_improvements.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/planned/017_limit_warnings_and_observability.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/planned/018_workspace_access_policy_for_media_and_tools.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/evidence.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/faq.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/manual_testing.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/mcp-worker.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/snapshots.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/tools-comms.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/workflow-bundles.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/emails.config.example.yaml +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/examples/01_hello_world.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/examples/02_ask_user.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/examples/03_wait_until.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/examples/04_multi_step.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/examples/05_persistence.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/examples/06_llm_integration.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/examples/07_react_agent.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/examples/README.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/llms-full.txt +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/llms.txt +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/mkdocs.yml +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/pytest.ini +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/core/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/core/config.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/core/event_keys.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/core/models.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/core/policy.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/core/runtime.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/core/spec.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/core/vars.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/evidence/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/evidence/recorder.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/history_bundle.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/identity/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/identity/fingerprint.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/constants.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/default_tools.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/effect_handlers.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/embeddings_client.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/factory.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/llm_client.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/logging.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/mcp_worker.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/observability.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/output_specs.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/session_attachments.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/summarizer.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/tool_executor.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractcore/workspace_scoped_tools.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractmemory/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/integrations/abstractmemory/effect_handlers.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/memory/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/memory/active_context.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/memory/active_memory.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/memory/compaction.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/memory/kg_packets.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/memory/memact_composer.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/memory/recall_levels.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/memory/token_budget.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/rendering/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/rendering/agent_trace_report.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/rendering/json_stringify.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/scheduler/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/scheduler/convenience.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/scheduler/registry.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/scheduler/scheduler.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/artifacts.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/base.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/commands.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/in_memory.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/json_files.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/ledger_chain.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/observable.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/offloading.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/snapshots.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/storage/sqlite.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/agent_adapter.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/context_adapter.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/control_adapter.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/effect_adapter.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/event_adapter.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/function_adapter.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/memact_adapter.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/subflow_adapter.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/adapters/variable_adapter.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/compiler.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/flow.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/visual/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/visual/agent_ids.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/visual/builtins.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/visual/code_executor.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/visual/executor.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/visual/models.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/visualflow_compiler/visual/multi_entry_lowering.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/workflow_bundle/__init__.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/workflow_bundle/models.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/workflow_bundle/packer.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/workflow_bundle/reader.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/src/abstractruntime/workflow_bundle/registry.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/README.md +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/conftest.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_active_context_policy.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_active_memory.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_answer_user_effect.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_artifacts.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_chat_summarizer_integration.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_command_store.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_compaction_helpers.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_control_adapter_while.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_default_tools_comms_gating.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_default_tools_include_skim_files.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_default_tools_include_skim_folders.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_default_tools_search_files_executor.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_durable_toolsets.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_e2e_tool_calls_idempotency_lmstudio.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_emit_event_without_workflow_registry.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_evidence_recorder.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_factory_timeouts_default_to_abstractcore_config.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_integration_abstractcore.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_integrations_abstractcore.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_json_file_run_store_children_index.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_jsonl_ledger_recovery.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_kg_learn_and_recall_contract.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_ledger_chain.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_ledger_subscription.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_call_media_artifact_refs.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_call_media_artifact_refs_persist_across_restart.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_call_media_uses_source_path_label.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_call_requires_prompt.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_call_response_schema_normalization.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_call_structured_output_fallback.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_call_truncation_retry_contract.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_call_use_context_appends_turn.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_call_verbatim_payload_capture.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_client_media_artifacts.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_client_system_context.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_llm_client_tool_call_parsing.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_local_runtime_timeout_kwarg_policy.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_mcp_remote_tool_executor.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_mcp_worker_logging.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_mcp_worker_security.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_mcp_worker_stdio.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memact_composer_from_kg_result.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_kg_assert_attributes_defaults.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_kg_packets.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_kg_predicate_aliasing.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_kg_query_packetization_restart.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_kg_query_recall_level_policy.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_kg_semantic_query_ranking.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_note_effect.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_query_effect.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_query_rich_filters.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_scope_and_rehydrate_effect.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_memory_tag_effect.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_mlx_generation_serialization.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_multimodal_abstractcore_integration.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_offloading.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_pause_resume.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_prompt_cache_modules.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_queryable_run_store.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_read_file_fallback_to_session_attachments.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_real_integration.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_recall_levels_policy.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_remote_llm_client.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_rendering_agent_trace_report.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_rendering_json_stringify.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_retry_idempotency.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_run_history_bundle.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_runtime_config_max_output_tokens_fallback.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_runtime_install_boundary.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_runtime_llm_call_grounding_in_ledger.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_runtime_node_traces.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_runtime_start_seeds_tool_support.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_scheduler.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_session_attachments_registry_and_open_tool.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_snapshots.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_sqlite_ledger_store.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_start_subworkflow_async_wait.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_start_subworkflow_inherit_context_merges_messages.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_start_subworkflow_workspace_inheritance.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_structured_output_schema_enum.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_subworkflow.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_terminal_effect_completion.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_terminal_resume_appends_ledger_completion.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tick_completion_includes_output_in_ledger.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_approval_executor.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_approval_resume_executes.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_calls_idempotency_keys.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_executor_argument_sanitization.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_executor_error_output_detection.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_executor_filename_alias.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_executor_kwarg_canonicalization.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_executor_read_file_aliases.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_executor_timeout.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_tool_wait_allowlist_safety.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_trace_context_propagation.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_vars_query_effect.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_agent_output_context_includes_messages.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_agent_tool_observations_persist_across_restart.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_agent_use_context_inherits_attachments.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_agent_use_context_persists_tool_observations.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_agent_use_context_persists_turn.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_llm_call_schema_ref_resolution.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_memact_compose_node.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_memory_kg_query_outputs_propagate.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_memory_kg_resolve_outputs_propagate.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visual_multi_entry_loop_overrides.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_add_message_builtin.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_add_message_node_appends_to_active_context.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_call_tool_node.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_compiler_basic.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_context_and_builder_nodes.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_get_element_node.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_get_random_element_node.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_has_tools_builtin.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_llm_call_context_attachments_map_to_media.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_llm_call_multimodal_output.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_make_object_node.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_memory_effect_nodes.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_memory_source_pins.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_prompt_only.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_random_nodes.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_string_contains_replace.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_visualflow_tool_parameters_node.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_wait_event_prompt_metadata.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_workflow_bundle_registry.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_workspace_policy_allowlist_mode.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_workspace_policy_mount_virtual_paths.py +0 -0
- {abstractruntime-0.4.7 → abstractruntime-0.4.9}/tests/test_workspace_policy_tool_calls_persist_across_restart.py +0 -0
|
@@ -7,14 +7,15 @@ The canonical dependency list lives in `pyproject.toml`.
|
|
|
7
7
|
|
|
8
8
|
## Runtime dependencies (core install)
|
|
9
9
|
|
|
10
|
-
- **abstractsemantics** (`>=0.0.
|
|
10
|
+
- **abstractsemantics** (`>=0.0.3`) — structured schema registry support (declared in `pyproject.toml`, used in `src/abstractruntime/integrations/abstractmemory/effect_handlers.py` and VisualFlow execution wiring).
|
|
11
|
+
- **AbstractMemory** (`>=0.2.6`) — TripleStore models and store contract used by Runtime's `MEMORY_KG_*` effects. Durable/vector backend dependencies such as LanceDB remain selected by hosts.
|
|
11
12
|
|
|
12
13
|
## Optional integrations (extras)
|
|
13
14
|
|
|
14
15
|
Installed only when you opt in to extras:
|
|
15
|
-
- **abstractcore** (`>=2.
|
|
16
|
+
- **abstractcore** (`>=2.13.12`) — LLM + tools integration used by `abstractruntime[abstractcore]` (declared in `pyproject.toml`, implementation under `src/abstractruntime/integrations/abstractcore/*`, docs: `docs/integrations/abstractcore.md`).
|
|
16
17
|
- 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.
|
|
17
|
-
- **abstractcore[tools]** (`>=2.
|
|
18
|
+
- **abstractcore[tools]** (`>=2.13.12`) — toolchain extra used by `abstractruntime[mcp-worker]` (declared in `pyproject.toml`) and intended to include HTML parsing dependencies (see comments in `pyproject.toml`).
|
|
18
19
|
- **RestrictedPython** (optional) — used for sandboxed execution of VisualFlow “Code” nodes when available (`src/abstractruntime/visualflow_compiler/visual/code_executor.py`).
|
|
19
20
|
|
|
20
21
|
## Build & test tooling
|
|
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.4.9] - 2026-05-09
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Added `AbstractMemory>=0.2.6` as a base dependency so Runtime's
|
|
14
|
+
`MEMORY_KG_*` effect contract always has the AbstractMemory TripleStore
|
|
15
|
+
models available.
|
|
16
|
+
|
|
17
|
+
### Notes
|
|
18
|
+
- Runtime still does not depend on `AbstractMemory[lancedb]`. Hosts such as
|
|
19
|
+
AbstractGateway choose the durable/vector memory backend, path, embeddings,
|
|
20
|
+
and readiness policy.
|
|
21
|
+
|
|
22
|
+
## [0.4.8] - 2026-05-08
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
- Minimum `abstractcore` optional dependency increased to `>=2.13.12`, and the
|
|
26
|
+
semantics floor increased to `abstractsemantics>=0.0.3`.
|
|
27
|
+
- Added explicit hardware-profile cascade extras:
|
|
28
|
+
`abstractruntime[apple]`, `abstractruntime[gpu]`,
|
|
29
|
+
`abstractruntime[all-apple]`, and `abstractruntime[all-gpu]`.
|
|
30
|
+
|
|
31
|
+
### Notes
|
|
32
|
+
- Runtime still owns durable execution, not local model engines. These extras
|
|
33
|
+
delegate to the matching AbstractCore profile so Gateway and root aggregate
|
|
34
|
+
installs can compose a single profile vocabulary.
|
|
35
|
+
|
|
10
36
|
## [0.4.7] - 2026-05-08
|
|
11
37
|
|
|
12
38
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: AbstractRuntime
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.9
|
|
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,17 +20,26 @@ 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:
|
|
23
|
+
Requires-Dist: abstractmemory>=0.2.6
|
|
24
|
+
Requires-Dist: abstractsemantics>=0.0.3
|
|
24
25
|
Provides-Extra: abstractcore
|
|
25
|
-
Requires-Dist: abstractcore>=2.13.
|
|
26
|
+
Requires-Dist: abstractcore>=2.13.12; extra == 'abstractcore'
|
|
27
|
+
Provides-Extra: all-apple
|
|
28
|
+
Requires-Dist: abstractcore[all-apple]>=2.13.12; extra == 'all-apple'
|
|
29
|
+
Provides-Extra: all-gpu
|
|
30
|
+
Requires-Dist: abstractcore[all-gpu]>=2.13.12; extra == 'all-gpu'
|
|
31
|
+
Provides-Extra: apple
|
|
32
|
+
Requires-Dist: abstractcore[apple]>=2.13.12; extra == 'apple'
|
|
26
33
|
Provides-Extra: docs
|
|
27
34
|
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
|
|
28
35
|
Requires-Dist: mkdocs>=1.6.0; extra == 'docs'
|
|
29
36
|
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
|
|
37
|
+
Provides-Extra: gpu
|
|
38
|
+
Requires-Dist: abstractcore[gpu]>=2.13.12; extra == 'gpu'
|
|
30
39
|
Provides-Extra: mcp-worker
|
|
31
|
-
Requires-Dist: abstractcore[tools]>=2.13.
|
|
40
|
+
Requires-Dist: abstractcore[tools]>=2.13.12; extra == 'mcp-worker'
|
|
32
41
|
Provides-Extra: multimodal
|
|
33
|
-
Requires-Dist: abstractcore[audio,media,openai,vision,voice]>=2.13.
|
|
42
|
+
Requires-Dist: abstractcore[audio,media,openai,vision,voice]>=2.13.12; extra == 'multimodal'
|
|
34
43
|
Provides-Extra: test
|
|
35
44
|
Requires-Dist: pytest>=7.0.0; extra == 'test'
|
|
36
45
|
Description-Content-Type: text/markdown
|
|
@@ -41,7 +50,7 @@ Description-Content-Type: text/markdown
|
|
|
41
50
|
|
|
42
51
|
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.
|
|
43
52
|
|
|
44
|
-
**Version:** 0.4.
|
|
53
|
+
**Version:** 0.4.9 • **Python:** 3.10+
|
|
45
54
|
|
|
46
55
|
**Status:** pre-1.0 (API may evolve). For production use, pin versions and follow `CHANGELOG.md`.
|
|
47
56
|
|
|
@@ -75,7 +84,12 @@ AbstractCore integration (LLM + tools):
|
|
|
75
84
|
pip install "abstractruntime[abstractcore]"
|
|
76
85
|
```
|
|
77
86
|
|
|
78
|
-
The `abstractcore` extra installs AbstractCore 2.13.
|
|
87
|
+
The `abstractcore` extra installs AbstractCore 2.13.12 or newer so the hardened server auth model, provider-key header routing, generated-media contracts, capability catalog, prompt-cache control plane, current tool catalog, public output-selector contract, and async/sync text-generation output-selector parity are available. Use `abstractruntime[multimodal]` when you need common media, vision, voice, and audio dependencies.
|
|
88
|
+
|
|
89
|
+
Hardware profile cascades are available for native Python installs:
|
|
90
|
+
`abstractruntime[apple]`, `abstractruntime[gpu]`, `abstractruntime[all-apple]`,
|
|
91
|
+
and `abstractruntime[all-gpu]` delegate to the matching AbstractCore profile
|
|
92
|
+
without making the runtime kernel itself hardware-specific.
|
|
79
93
|
|
|
80
94
|
MCP worker entrypoint (default toolsets over stdio):
|
|
81
95
|
|
|
@@ -124,7 +138,7 @@ state = rt.resume(
|
|
|
124
138
|
assert state.status.value == "completed"
|
|
125
139
|
```
|
|
126
140
|
|
|
127
|
-
## What’s included (v0.4.
|
|
141
|
+
## What’s included (v0.4.9)
|
|
128
142
|
|
|
129
143
|
Kernel (dependency-light):
|
|
130
144
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -149,6 +163,9 @@ Drivers + distribution:
|
|
|
149
163
|
|
|
150
164
|
Optional integrations:
|
|
151
165
|
- AbstractCore (LLM + tools, cached sessions/prompt cache, media inputs, generated media, tool approval waits): `docs/integrations/abstractcore.md`
|
|
166
|
+
- AbstractMemory TripleStore integration for `MEMORY_KG_*` effects. Runtime
|
|
167
|
+
depends on the light AbstractMemory contract; hosts choose storage backends
|
|
168
|
+
such as LanceDB, SQLite, or in-memory stores.
|
|
152
169
|
- comms toolset gating (email/WhatsApp/Telegram): `docs/tools-comms.md`
|
|
153
170
|
|
|
154
171
|
## Built-in scheduler (zero-config)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
It is designed for long-running workflows that must survive restarts and explicitly model blocking (human input, timers, external events, subworkflows) without keeping Python stacks alive.
|
|
6
6
|
|
|
7
|
-
**Version:** 0.4.
|
|
7
|
+
**Version:** 0.4.9 • **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
|
|
|
@@ -38,7 +38,12 @@ AbstractCore integration (LLM + tools):
|
|
|
38
38
|
pip install "abstractruntime[abstractcore]"
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
The `abstractcore` extra installs AbstractCore 2.13.
|
|
41
|
+
The `abstractcore` extra installs AbstractCore 2.13.12 or newer so the hardened server auth model, provider-key header routing, generated-media contracts, capability catalog, prompt-cache control plane, current tool catalog, public output-selector contract, and async/sync text-generation output-selector parity are available. Use `abstractruntime[multimodal]` when you need common media, vision, voice, and audio dependencies.
|
|
42
|
+
|
|
43
|
+
Hardware profile cascades are available for native Python installs:
|
|
44
|
+
`abstractruntime[apple]`, `abstractruntime[gpu]`, `abstractruntime[all-apple]`,
|
|
45
|
+
and `abstractruntime[all-gpu]` delegate to the matching AbstractCore profile
|
|
46
|
+
without making the runtime kernel itself hardware-specific.
|
|
42
47
|
|
|
43
48
|
MCP worker entrypoint (default toolsets over stdio):
|
|
44
49
|
|
|
@@ -87,7 +92,7 @@ state = rt.resume(
|
|
|
87
92
|
assert state.status.value == "completed"
|
|
88
93
|
```
|
|
89
94
|
|
|
90
|
-
## What’s included (v0.4.
|
|
95
|
+
## What’s included (v0.4.9)
|
|
91
96
|
|
|
92
97
|
Kernel (dependency-light):
|
|
93
98
|
- workflow graphs: `WorkflowSpec` (`src/abstractruntime/core/spec.py`)
|
|
@@ -112,6 +117,9 @@ Drivers + distribution:
|
|
|
112
117
|
|
|
113
118
|
Optional integrations:
|
|
114
119
|
- AbstractCore (LLM + tools, cached sessions/prompt cache, media inputs, generated media, tool approval waits): `docs/integrations/abstractcore.md`
|
|
120
|
+
- AbstractMemory TripleStore integration for `MEMORY_KG_*` effects. Runtime
|
|
121
|
+
depends on the light AbstractMemory contract; hosts choose storage backends
|
|
122
|
+
such as LanceDB, SQLite, or in-memory stores.
|
|
115
123
|
- comms toolset gating (email/WhatsApp/Telegram): `docs/tools-comms.md`
|
|
116
124
|
|
|
117
125
|
## Built-in scheduler (zero-config)
|
|
@@ -176,7 +176,7 @@ This produces a portable record of a run’s state + ledger + artifacts suitable
|
|
|
176
176
|
|
|
177
177
|
### AbstractCore (LLM + tools)
|
|
178
178
|
|
|
179
|
-
Requires: `pip install "abstractruntime[abstractcore]"` (AbstractCore 2.13.
|
|
179
|
+
Requires: `pip install "abstractruntime[abstractcore]"` (AbstractCore 2.13.12 or newer).
|
|
180
180
|
|
|
181
181
|
Implementation: `src/abstractruntime/integrations/abstractcore/*`.
|
|
182
182
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# AbstractRuntime — Architecture
|
|
2
2
|
|
|
3
3
|
> Updated: 2026-05-08
|
|
4
|
-
> Version: 0.4.
|
|
4
|
+
> Version: 0.4.9
|
|
5
5
|
> Scope: this describes **what is implemented in this repository**.
|
|
6
6
|
|
|
7
7
|
AbstractRuntime is a **durable workflow runtime**: it executes workflow graphs as a persisted state machine with explicit waits (user, time, events, jobs, subworkflows). A run can pause for hours/days and resume **without** keeping Python stacks/coroutines alive.
|
|
@@ -12,7 +12,7 @@ AbstractRuntime is the durable execution kernel inside the wider AbstractFramewo
|
|
|
12
12
|
- AbstractFramework umbrella: [lpalbou/AbstractFramework](https://github.com/lpalbou/AbstractFramework)
|
|
13
13
|
- AbstractCore (LLM + tools): [lpalbou/abstractcore](https://github.com/lpalbou/abstractcore)
|
|
14
14
|
|
|
15
|
-
The runtime stays dependency-light and delegates LLM/tool execution to integrations (notably AbstractCore): `src/abstractruntime/integrations/abstractcore/*`.
|
|
15
|
+
The runtime stays dependency-light and delegates LLM/tool execution to integrations (notably AbstractCore): `src/abstractruntime/integrations/abstractcore/*`. Runtime also depends on the light AbstractMemory contract so `MEMORY_KG_*` effects always have the TripleStore model types available; hosts still choose the concrete memory backend.
|
|
16
16
|
|
|
17
17
|
```mermaid
|
|
18
18
|
flowchart LR
|
|
@@ -37,7 +37,7 @@ The boundary is intentionally narrow:
|
|
|
37
37
|
- Remote chat media is sent to AbstractCore Server as provider-ready content arrays, but persisted provider-request metadata redacts data URLs so checkpoints and ledgers do not embed media bytes.
|
|
38
38
|
- Provider sessions and prompt-cache objects are not runtime state. Runtime may carry stable cache keys, while AbstractCore clients/servers manage warm caches.
|
|
39
39
|
- Local execution can use richer AbstractCore capability plugins. Remote and hybrid execution map the common media cases to AbstractCore Server endpoints and OpenAI-compatible content arrays, while hybrid keeps tool execution local.
|
|
40
|
-
- Gateway and other hosts compose Runtime with the desired Core/capability/memory profile. Runtime's base package
|
|
40
|
+
- Gateway and other hosts compose Runtime with the desired Core/capability/memory profile. Runtime's base package includes the AbstractMemory contract but not backend extras such as LanceDB; hosts choose storage, embeddings, and readiness policy. Hardware profile extras such as `apple`, `gpu`, `all-apple`, and `all-gpu` cascade through AbstractCore when a host selects them.
|
|
41
41
|
- Remote and hybrid clients use explicit Core server URLs and auth headers supplied by the host. Runtime does not read Gateway auth environment variables for provider/model/auth decisions or treat Gateway bearer tokens as Core server/provider credentials.
|
|
42
42
|
|
|
43
43
|
This keeps the runtime usable by `../abstractgateway` and application layers such as `../abstractflow`, `../abstractassistant`, `../abstractobserver`, and `../abstractcode` without embedding provider-specific model logic in the durable kernel.
|
|
@@ -20,11 +20,11 @@ This matters for the two-entry-point design:
|
|
|
20
20
|
|
|
21
21
|
## Current Code Reality
|
|
22
22
|
|
|
23
|
-
Runtime 0.4.
|
|
23
|
+
Runtime 0.4.8 carries the current install-boundary work:
|
|
24
24
|
|
|
25
|
-
- `pyproject.toml` now points Runtime AbstractCore extras at `abstractcore>=2.13.
|
|
26
|
-
- Runtime
|
|
27
|
-
- `tests/test_packaging_extras.py` verifies the Core floor and
|
|
25
|
+
- `pyproject.toml` now points Runtime AbstractCore extras at `abstractcore>=2.13.12`.
|
|
26
|
+
- Runtime exposes `apple`, `gpu`, `all-apple`, and `all-gpu` as explicit Core profile cascades.
|
|
27
|
+
- `tests/test_packaging_extras.py` verifies the Core floor and profile cascade dependencies.
|
|
28
28
|
- `tests/test_runtime_install_boundary.py` verifies the package root/kernel import boundary.
|
|
29
29
|
- `tests/test_remote_llm_client.py` verifies remote AbstractCore clients do not inherit Gateway auth
|
|
30
30
|
or provider-key env vars.
|
|
@@ -13,17 +13,19 @@ deployments pull in Core, agents, media, memory, tools, and provider SDKs.
|
|
|
13
13
|
|
|
14
14
|
## Current Code Reality
|
|
15
15
|
|
|
16
|
-
- Runtime base depends on `abstractsemantics>=0.0.
|
|
16
|
+
- Runtime base depends on `abstractsemantics>=0.0.3`.
|
|
17
17
|
- AbstractCore integration is explicit through `abstractruntime[abstractcore]`.
|
|
18
18
|
- Multimodal helper dependencies are explicit through `abstractruntime[multimodal]`.
|
|
19
19
|
- Runtime does not directly depend on AbstractMemory; memory effects are integration/host-wired.
|
|
20
20
|
- Runtime config contains run-level defaults and limits, not deployment auth or provider secrets.
|
|
21
|
-
- As of the AbstractCore `2.13.
|
|
21
|
+
- As of the AbstractCore `2.13.12` release, Core exposes the canonical install-profile aliases
|
|
22
22
|
`abstractcore[apple]`, `abstractcore[gpu]`, `abstractcore[all-apple]`, and
|
|
23
23
|
`abstractcore[all-gpu]`, plus the released Voice/Vision catalog-capable floors
|
|
24
|
-
`abstractvoice>=0.9.
|
|
25
|
-
- Runtime's package metadata now points its AbstractCore extras at `abstractcore>=2.13.
|
|
24
|
+
`abstractvoice>=0.9.2` and `abstractvision>=0.3.3`.
|
|
25
|
+
- Runtime's package metadata now points its AbstractCore extras at `abstractcore>=2.13.12`
|
|
26
26
|
for Gateway deployment alignment.
|
|
27
|
+
- Runtime exposes pass-through profile extras `apple`, `gpu`, `all-apple`, and `all-gpu` so
|
|
28
|
+
Gateway/root aggregate installs can cascade through Core without Runtime owning hardware engines.
|
|
27
29
|
|
|
28
30
|
## Problem
|
|
29
31
|
|
|
@@ -43,12 +45,13 @@ Profile guidance:
|
|
|
43
45
|
|
|
44
46
|
- `abstractruntime`: durable kernel plus Semantics schema refs.
|
|
45
47
|
- `abstractruntime[abstractcore]`: LLM/tool integration, with a floor of
|
|
46
|
-
`abstractcore>=2.13.
|
|
48
|
+
`abstractcore>=2.13.12` so Gateway receives the current Core server-auth, provider-key,
|
|
47
49
|
generated-media, and capability-catalog contracts.
|
|
48
50
|
- `abstractruntime[multimodal]`: Core media/capability helpers for generated images, voice/audio,
|
|
49
|
-
and media inputs, also with `abstractcore>=2.13.
|
|
50
|
-
-
|
|
51
|
-
|
|
51
|
+
and media inputs, also with `abstractcore>=2.13.12`.
|
|
52
|
+
- `abstractruntime[apple]`, `abstractruntime[gpu]`, `abstractruntime[all-apple]`, and
|
|
53
|
+
`abstractruntime[all-gpu]`: pass-through Core profile cascades. Runtime still owns no
|
|
54
|
+
hardware-specific engine.
|
|
52
55
|
|
|
53
56
|
Gateway should compose Runtime with the selected Core/capability/memory profile. The cascade belongs
|
|
54
57
|
to Gateway, not Runtime.
|
|
@@ -93,11 +96,20 @@ Related package guidance remains:
|
|
|
93
96
|
- Gateway should keep Runtime base as the dependency for minimal installs.
|
|
94
97
|
- Gateway server profiles may choose `AbstractRuntime[multimodal]`.
|
|
95
98
|
- Gateway Apple/GPU profiles should cascade through Core profile names such as
|
|
96
|
-
`abstractcore[all-apple]` or `abstractcore[all-gpu]
|
|
99
|
+
`abstractcore[all-apple]` or `abstractcore[all-gpu]`.
|
|
97
100
|
- Root `abstractframework` should update Runtime version floors to match the current Gateway/Core
|
|
98
101
|
integration baseline.
|
|
99
102
|
- AbstractAgent should tighten its Runtime dependency floor.
|
|
100
103
|
|
|
104
|
+
What changed in Runtime 0.4.8:
|
|
105
|
+
|
|
106
|
+
- `abstractruntime[abstractcore]`, `abstractruntime[multimodal]`, and
|
|
107
|
+
`abstractruntime[mcp-worker]` now require `abstractcore>=2.13.12`.
|
|
108
|
+
- `abstractruntime[apple]` and `abstractruntime[gpu]` delegate to matching Core local-engine
|
|
109
|
+
aliases.
|
|
110
|
+
- `abstractruntime[all-apple]` and `abstractruntime[all-gpu]` delegate to matching Core aggregate
|
|
111
|
+
profiles.
|
|
112
|
+
|
|
101
113
|
## Promotion Criteria
|
|
102
114
|
|
|
103
115
|
Promoted because the Runtime release needed package metadata alignment, clearer install-boundary
|
|
@@ -111,7 +123,6 @@ docs, and regression tests for the Gateway handoff.
|
|
|
111
123
|
- [x] Runtime LLM/media integration tests gated behind extras.
|
|
112
124
|
- [x] Static import checks that Runtime kernel modules do not import Core, Vision, Voice, Memory, or
|
|
113
125
|
Music.
|
|
114
|
-
- [x] Package metadata test proving Runtime
|
|
115
|
-
extras.
|
|
126
|
+
- [x] Package metadata test proving Runtime profile extras are explicit Core cascades.
|
|
116
127
|
- [x] Package metadata test proving `abstractruntime[abstractcore]` and `abstractruntime[multimodal]`
|
|
117
|
-
depend on `abstractcore>=2.13.
|
|
128
|
+
depend on `abstractcore>=2.13.12`.
|
|
@@ -18,7 +18,7 @@ Optional (LLM + tools via AbstractCore):
|
|
|
18
18
|
pip install "abstractruntime[abstractcore]"
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
This installs AbstractCore 2.13.
|
|
21
|
+
This installs AbstractCore 2.13.12 or newer, which matches the documented server auth, provider-key header routing, generated-media contracts, capability catalog, prompt-cache control plane, current tool behavior, public output-selector contract, and async/sync text-generation output-selector parity. Use `abstractruntime[multimodal]` when your workflows need common media, vision, voice, or audio dependencies.
|
|
22
22
|
|
|
23
23
|
## Mental model (source of truth)
|
|
24
24
|
|
|
@@ -16,7 +16,7 @@ Implementation pointers (this repo):
|
|
|
16
16
|
pip install "abstractruntime[abstractcore]"
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
This extra installs AbstractCore 2.13.
|
|
19
|
+
This extra installs AbstractCore 2.13.12 or newer. That is the supported baseline for the current server auth split (`Authorization` for server auth, `X-AbstractCore-Provider-API-Key` for provider overrides), generated-media contracts, capability catalog, prompt-cache control-plane endpoints, current tool catalog, AbstractCore's public output-selector contract, and async/sync text-generation output-selector parity.
|
|
20
20
|
|
|
21
21
|
For AbstractCore's multimodal `generate(..., output=...)` path, use the newer baseline and optional media packages:
|
|
22
22
|
|
|
@@ -24,7 +24,7 @@ For AbstractCore's multimodal `generate(..., output=...)` path, use the newer ba
|
|
|
24
24
|
pip install "abstractruntime[multimodal]"
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
This installs `abstractcore[media,openai,vision,voice,audio]>=2.13.
|
|
27
|
+
This installs `abstractcore[media,openai,vision,voice,audio]>=2.13.12`. Local image/voice generation still depends on the configured AbstractCore capability backends (for example AbstractVision and AbstractVoice, or OpenAI/OpenAI-compatible remote engines).
|
|
28
28
|
|
|
29
29
|
The MCP worker entrypoint uses the `mcp-worker` extra:
|
|
30
30
|
|
|
@@ -62,7 +62,7 @@ Returns a structured dict for UI/status display. (`src/abstractruntime/core/runt
|
|
|
62
62
|
|
|
63
63
|
Returns a list of `LimitWarning` objects for limits approaching/exceeded. (`src/abstractruntime/core/models.py`, `src/abstractruntime/core/runtime.py`)
|
|
64
64
|
|
|
65
|
-
As of v0.4.
|
|
65
|
+
As of v0.4.9, warnings are computed for:
|
|
66
66
|
- `iterations` (`current_iteration` vs `max_iterations`)
|
|
67
67
|
- `tokens` (`estimated_tokens_used` vs `max_tokens`)
|
|
68
68
|
|
|
@@ -79,7 +79,7 @@ AbstractRuntime stays dependency-light at the kernel level; concrete integration
|
|
|
79
79
|
|
|
80
80
|
## Status (implemented in this repository)
|
|
81
81
|
|
|
82
|
-
As of v0.4.
|
|
82
|
+
As of v0.4.9:
|
|
83
83
|
- durable kernel: `RunState`, `WaitState`, `Runtime.start/tick/resume`
|
|
84
84
|
- built-in waits + events: `WAIT_EVENT`, `WAIT_UNTIL`, `ASK_USER`, `EMIT_EVENT`
|
|
85
85
|
- persistence backends: in-memory, JSON/JSONL, SQLite
|
|
@@ -8,7 +8,7 @@ Implementation pointers:
|
|
|
8
8
|
- model fields: `src/abstractruntime/core/models.py` (`StepRecord.prev_hash`, `StepRecord.record_hash`, `StepRecord.signature`)
|
|
9
9
|
- hash-chain decorator + verifier: `src/abstractruntime/storage/ledger_chain.py`
|
|
10
10
|
|
|
11
|
-
## What is implemented (v0.4.
|
|
11
|
+
## What is implemented (v0.4.9)
|
|
12
12
|
|
|
13
13
|
- `HashChainedLedgerStore(inner_store)` — wraps any `LedgerStore` to compute hashes on append
|
|
14
14
|
- `verify_ledger_chain(records)` — validates the chain and returns a verification report
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "AbstractRuntime"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.9"
|
|
8
8
|
description = "AbstractRuntime: a durable graph runner designed to pair with AbstractCore."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -36,24 +36,44 @@ classifiers = [
|
|
|
36
36
|
dependencies = [
|
|
37
37
|
# Required to resolve stable structured-output schema refs like:
|
|
38
38
|
# {"$ref":"abstractsemantics:kg_assertion_schema_v0"}
|
|
39
|
-
"abstractsemantics>=0.0.
|
|
39
|
+
"abstractsemantics>=0.0.3",
|
|
40
|
+
# Required for the Runtime-owned MEMORY_KG_* effect contract and TripleStore
|
|
41
|
+
# model types. Durable/vector backend dependencies such as LanceDB remain
|
|
42
|
+
# package extras owned by AbstractMemory and selected by hosts such as Gateway.
|
|
43
|
+
"AbstractMemory>=0.2.6",
|
|
40
44
|
]
|
|
41
45
|
|
|
42
46
|
[project.optional-dependencies]
|
|
43
47
|
# Enables `abstractruntime.integrations.abstractcore.*` imports.
|
|
44
48
|
abstractcore = [
|
|
45
|
-
"abstractcore>=2.13.
|
|
49
|
+
"abstractcore>=2.13.12",
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
apple = [
|
|
53
|
+
"abstractcore[apple]>=2.13.12",
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
gpu = [
|
|
57
|
+
"abstractcore[gpu]>=2.13.12",
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
all-apple = [
|
|
61
|
+
"abstractcore[all-apple]>=2.13.12",
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
all-gpu = [
|
|
65
|
+
"abstractcore[all-gpu]>=2.13.12",
|
|
46
66
|
]
|
|
47
67
|
|
|
48
68
|
# Enables AbstractCore multimodal generation helpers with common OpenAI-backed
|
|
49
69
|
# image/voice capability packages.
|
|
50
70
|
multimodal = [
|
|
51
|
-
"abstractcore[media,openai,vision,voice,audio]>=2.13.
|
|
71
|
+
"abstractcore[media,openai,vision,voice,audio]>=2.13.12",
|
|
52
72
|
]
|
|
53
73
|
|
|
54
74
|
# Enables `abstractruntime-mcp-worker` with the default toolsets (includes bs4/lxml).
|
|
55
75
|
mcp-worker = [
|
|
56
|
-
"abstractcore[tools]>=2.13.
|
|
76
|
+
"abstractcore[tools]>=2.13.12",
|
|
57
77
|
]
|
|
58
78
|
|
|
59
79
|
# CI/test dependencies. The workflow runs the basic contract suite plus focused
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
### Changed
|
|
2
|
+
- Added `AbstractMemory>=0.2.6` as a base dependency so Runtime's
|
|
3
|
+
`MEMORY_KG_*` effect contract always has the AbstractMemory TripleStore
|
|
4
|
+
models available.
|
|
5
|
+
|
|
6
|
+
### Notes
|
|
7
|
+
- Runtime still does not depend on `AbstractMemory[lancedb]`. Hosts such as
|
|
8
|
+
AbstractGateway choose the durable/vector memory backend, path, embeddings,
|
|
9
|
+
and readiness policy.
|
|
@@ -43,23 +43,36 @@ def test_runtime_exposes_abstractcore_and_worker_extras_with_gateway_aligned_flo
|
|
|
43
43
|
pyproject = Path(__file__).resolve().parents[1] / "pyproject.toml"
|
|
44
44
|
text = pyproject.read_text(encoding="utf-8")
|
|
45
45
|
|
|
46
|
+
assert '"abstractsemantics>=0.0.3"' in text
|
|
47
|
+
assert '"AbstractMemory>=0.2.6"' in text
|
|
48
|
+
assert '"AbstractMemory[lancedb]' not in text
|
|
46
49
|
assert "[project.optional-dependencies]" in text
|
|
47
50
|
assert "abstractcore = [" in text
|
|
48
51
|
assert "mcp-worker = [" in text
|
|
49
|
-
assert '"abstractcore>=2.13.
|
|
50
|
-
assert '"abstractcore[media,openai,vision,voice,audio]>=2.13.
|
|
52
|
+
assert '"abstractcore>=2.13.12"' in text
|
|
53
|
+
assert '"abstractcore[media,openai,vision,voice,audio]>=2.13.12"' in text
|
|
51
54
|
|
|
52
55
|
worker_block = _extract_optional_dependency_block(text, key="mcp-worker")
|
|
53
|
-
assert '"abstractcore[tools]>=2.13.
|
|
56
|
+
assert '"abstractcore[tools]>=2.13.12"' in worker_block
|
|
54
57
|
|
|
55
58
|
|
|
56
|
-
def
|
|
59
|
+
def test_runtime_exposes_python_install_hardware_profile_cascades() -> None:
|
|
57
60
|
pyproject = Path(__file__).resolve().parents[1] / "pyproject.toml"
|
|
58
61
|
text = pyproject.read_text(encoding="utf-8")
|
|
59
62
|
|
|
60
63
|
optional_keys = _extract_optional_dependency_keys(text)
|
|
61
64
|
|
|
62
|
-
assert "apple"
|
|
63
|
-
assert "gpu"
|
|
64
|
-
assert "all-apple"
|
|
65
|
-
assert "all-gpu"
|
|
65
|
+
assert "apple" in optional_keys
|
|
66
|
+
assert "gpu" in optional_keys
|
|
67
|
+
assert "all-apple" in optional_keys
|
|
68
|
+
assert "all-gpu" in optional_keys
|
|
69
|
+
|
|
70
|
+
apple_block = _extract_optional_dependency_block(text, key="apple")
|
|
71
|
+
gpu_block = _extract_optional_dependency_block(text, key="gpu")
|
|
72
|
+
all_apple_block = _extract_optional_dependency_block(text, key="all-apple")
|
|
73
|
+
all_gpu_block = _extract_optional_dependency_block(text, key="all-gpu")
|
|
74
|
+
|
|
75
|
+
assert '"abstractcore[apple]>=2.13.12"' in apple_block
|
|
76
|
+
assert '"abstractcore[gpu]>=2.13.12"' in gpu_block
|
|
77
|
+
assert '"abstractcore[all-apple]>=2.13.12"' in all_apple_block
|
|
78
|
+
assert '"abstractcore[all-gpu]>=2.13.12"' in all_gpu_block
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
### Changed
|
|
2
|
-
- Minimum `abstractcore` optional dependency increased to `>=2.13.11` for the `abstractcore`, `multimodal`, and `mcp-worker` extras so Runtime aligns with the current Core server-auth, provider-key, generated-media, and capability-catalog contracts.
|
|
3
|
-
- AbstractCore integration imports now fail fast when a stale local AbstractCore install is older than the 2.13.11 Gateway/Core deployment baseline.
|
|
4
|
-
- Documentation now makes the Gateway handoff explicit: hosts choose Runtime plus the Core/capability/memory profile, pass Core server URLs/auth headers deliberately, and keep provider clients, auth objects, model handles, and sessions out of durable runtime state.
|
|
5
|
-
- Runtime no longer reads Gateway-owned environment variables directly. Prompt-cache defaults use explicit Runtime state or `ABSTRACTRUNTIME_PROMPT_CACHE`, read-file attachment registration limits use explicit Runtime state/payload values or `ABSTRACTRUNTIME_MAX_ATTACHMENT_BYTES`, and workflow bundle registries use shared/framework or explicit directories.
|
|
6
|
-
|
|
7
|
-
### Testing
|
|
8
|
-
- Added packaging boundary coverage proving Runtime exposes no fake hardware profile extras (`apple`, `gpu`, `all-apple`, `all-gpu`) and keeps the Core floors aligned.
|
|
9
|
-
- Added import-boundary coverage proving the runtime kernel and package root do not import optional Core/Vision/Voice/Memory/Music stacks.
|
|
10
|
-
- Added a remote client regression test proving Gateway auth/provider-key environment variables are not inherited as AbstractCore server auth or provider-key headers.
|
|
11
|
-
- Added regression tests proving Gateway env vars alone do not enable prompt-cache keys, shrink attachment registration limits, or select workflow bundle registry directories.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/adr/0001_layered_coupling_with_abstractcore.md
RENAMED
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/adr/0002_execution_modes_local_remote_hybrid.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/001_runtime_kernel.md
RENAMED
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/002_persistence_and_ledger.md
RENAMED
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/003_wait_primitives.md
RENAMED
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/004_scheduler_driver.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/006_snapshots_bookmarks.md
RENAMED
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/007_provenance_hash_chain.md
RENAMED
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/009_artifact_store.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/completed/011_subworkflow_support.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/001_runtime_kernel.md
RENAMED
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/002_snapshots_bookmarks.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/deprecated/DEPRECATED_README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstractruntime-0.4.7 → abstractruntime-0.4.9}/docs/backlog/planned/008_signatures_and_keys.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|