matrx-ai 0.5.330__tar.gz → 0.5.332__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.
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/PKG-INFO +8 -8
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/FEATURE.md +5 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/mandates.py +3 -1
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/mandates.py +13 -2
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/pyproject.toml +8 -8
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_control_token_persistence.py +50 -5
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_workflow_step_holder.py +20 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/.gitignore +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/AGENTS.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/CLAUDE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/MEDIA_VARIABLES_AND_HANDOFF.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/REMAINING_TASKS.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/TEST_HEALTH_HANDOFF.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/conftest.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/examples/embed_vfs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/_ext.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/PODCAST_PIPELINE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/_checkpoint.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/content_cleaner.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/conversation_labeler.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/podcast_generator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/podcast_stages.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/research.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agent_runners/tests/test_distinct_voices.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/DEPRECATED_prompts_manager.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/auto_assignment.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/batch_render.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/cache.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/conversation_type.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/definition.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/executor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/history_hydration.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/library/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/library/schema_coerce.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/named.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/output.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/resolver.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/response_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/services/conversation_labeler.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/source_tracking.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/tests/new_agent_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/tests/test_response_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/tests/test_structured_output_emit.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/tests/test_variables_prompt_door.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/types.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/usage_registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/variable_kinds.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/variable_schema.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/agents/variables.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/browser_handoff/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/browser_handoff/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/browser_handoff/coordinator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/browser_handoff/handle.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/browser_handoff/models.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/browser_handoff/outcomes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/browser_handoff/seam.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/capabilities/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/capabilities/browser_dom.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/capabilities/built_in.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/capabilities/desktop_native.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/capabilities/models.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/capabilities/registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/capabilities/tests/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/capabilities/tests/test_browser_dom.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/capabilities/tests/test_capabilities.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/canonicalize.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/constraint_eval.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/controls.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/equivalence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/errors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/host_catalog.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/knobs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/lifecycle.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/manager.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/models.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/processors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/resolve.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/catalog/routes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/client_host/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/client_host/agent_source.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/client_host/mandate_source.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/client_host/store.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/client_host/validate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/coding_sessions/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/coding_sessions/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/coding_sessions/models.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/concepts/ai_matrx_context_engine_v2.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/concepts/context_engine_plus_deferred_context_full_flow.svg +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/AGENTS_API.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/CONTENT_TYPES.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/TABLE_REFERENCE_FETCH.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/agent-definition-types.ts +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/ai-api-types.ts +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/citations.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/config_utils.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/context_preflight.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/context_trim.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/contract.schema.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/custom_tool.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/dictionary_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/enums.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/extra_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/finish_reason.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/json_schema_wire.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/llm_params.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/llm_wire_types.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/media_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/message-types.ts +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/message_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/models/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/models/content.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/models/extra.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/models/media.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/models/message.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/models/response.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/models/structured_input.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/models/unified.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/models/usage.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/name_gender.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/openai_responses_tool_ids.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/output_ceiling.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/picklist_runtime.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/prompt_values.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/read_only_resources.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/resource_ref.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/response_format.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/send_boundary.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/structured_input_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/structured_input_resolver.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/tests/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/tests/test_absolute_ceiling.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/tests/test_get_output_excludes_thinking.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/tool_config_image_processing_spec.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/tool_result_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/tools_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/tts_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/unified_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/unified_content.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/usage_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/validators.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/wire_names.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/context/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/context/app_context.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/context/emitter_protocol.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/context/environment_sniffer.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/context/events.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/context_engine.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/_agx_manager_impl.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/_arm_managers_impl.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/_conversation_rebuild_impl.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/_cx_managers_impl.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/_guest_registry_impl.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/_registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/agx_manager.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/ai_models/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/ai_models/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/ai_models/_ai_model_base_impl.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/ai_models/_ai_model_dto_impl.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/ai_models/_ai_model_manager_orm.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/ai_models/ai_model_base.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/ai_models/ai_model_dto.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/ai_models/ai_model_manager.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/arm_managers.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/DATA_REF.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/_notes_impl.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/_tasks_impl.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/data_ref.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/data_ref_utils.ts +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/datasets.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/notes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/patch_utils.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/picklists.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/tasks.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/content_types/tests.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/control_tokens.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/conversation_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/conversation_rebuild.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/conversation_title_backfill.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/cx_managers.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/db_requirements.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/guest_registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/message_parts.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/message_positions.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/migrations/0050_vfs_inode_blob.sql +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/migrations/0051_request_execution_attribution.sql +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/migrations/TOOL_CALL_OUTPUT_METADATA.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/migrations/add_observational_memory.sql +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/ownership_fields.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/persistence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/request_tracking_log.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/tests/db_tests.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/turn_failure.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/db/voice_catalog.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/AUDIO_AUTOMATIC_FALLBACK.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/AUDIO_HANDLING_COMPARISON.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/GROQ_TRANSCRIPTION.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/GROQ_TRANSCRIPTION_QUICK_START.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/GROQ_TRANSCRIPTION_SUMMARY.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/GROQ_TRANSCRIPTION_USAGE_TRACKING.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/STT_CATALOG.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/SUBAGENTS.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/TRANSCRIPTION_CACHING.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/docs/YOUTUBE_URL_HANDLING.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/evaluators/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/evaluators/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/evaluators/ai_judge.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/evaluators/calibration.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/evaluators/judge.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/evaluators/ledger.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/evaluators/selector.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/extraction.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/_strict_json.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/agent_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/agent_assignment_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/agent_loop_actions.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/agent_produce_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/chat_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/conversation_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/extract_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/image_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/image_pipeline_actions.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/llm_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/mandate_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/scrape_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/search_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/shared.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/tests/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/tests/test_extract_model_contract.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/tests/test_graph_nodes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/tests/test_llm_response_format.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/tests/test_node_handlers_execute.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/tests/test_node_panel_hooks.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/transcribe_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/tts_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/util_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/graph_nodes/video_action.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/injection_catalog.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/content_blocks_manager.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/core.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/docs/MATRX_PATTERNS_FRONTEND_GUIDE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/docs/QUICK_REFERENCE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/docs/README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/matrx_fetcher.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/pattern_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/tests/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/tests/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/tests/dataset_data_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/tests/direct_fetch_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/tests/instruction_builder_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/tests/integration_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/tests/simple_variable_example.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/instructions/tests/variable_recognition_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/kinds.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/local_data/.gitignore +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/local_data/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/local_data/paths.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/media/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/media/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/media/file_handles.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/media/generation_metadata.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/media/media_blocks.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/media/media_persistence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/media/mime_utils.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/media/naming.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/INTEGRATION_GUIDE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/adapter.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/buffering_coordinator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/constants.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/date_utils.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/events.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/factory.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/llm_adapter.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/message_utils.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/observational_memory.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/observer_agent.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/observer_runner.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/reflector_agent.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/reflector_runner.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/storage.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/storage_db.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/tests/test_async_buffering.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/tests/test_basic.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/thresholds.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/token_counter.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/memory/types.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/ops/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/ops/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/ops/issue_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/ops/issue_registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/ops/pricing_drift.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/ops/provider_outage.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/change_claims.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/concurrent_engine.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/conversation_persistence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/conversation_provider.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/conversation_runtime.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/cost_budget.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/execution_state.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/executor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/loop_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/mandate_carrier.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/overload_reroute.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/parallel_executor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/recovery_logic.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/requests.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/required_members.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/reroute_alarm.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/step_phase.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/orchestrator/tracking.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/persistence/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/persistence/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/persistence/coordinator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/persistence/postgres_text.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/persistence/queue_helpers.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/persistence/registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/persistence/replay.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/plans/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/plans/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/plans/compiler.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/plans/errors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/plans/types.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/plans/validate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/PROCESSING_TASKS.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/audio/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/audio/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/audio/audio_preprocessing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/audio/groq_transcription.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/audio/stt.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/audio/transcription_cache.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/block_detector.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/block_registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/content_view.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/envelope.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/fingerprint.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/generate_ts_types.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/kind_catalog.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/kind_surfaces_generated.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/artifact.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/base.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/comparison.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/decision.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/decision_tree.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/diagram.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/flashcards.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/item_presentation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/math_problem.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/media.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/mermaid.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/presentation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/progress.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/questionnaire.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/quiz.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/recipe.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/research.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/resources.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/schema_proposal.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/structured_info.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/table.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/tasks.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/text.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/thinking.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/timeline.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/transcript.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/models/troubleshooting.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/_llm_json.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/artifact_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/comparison_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/decision_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/decision_tree_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/diagram_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/diff_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/flashcard_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/item_presentation_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/math_problem_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/mermaid_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/presentation_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/progress_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/questionnaire_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/quiz_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/recipe_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/research_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/resources_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/schema_proposal_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/structured_info_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/table_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/task_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/timeline_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/timeline_stream_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/transcript_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/parsers/troubleshooting_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/stream_processor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tag_detection_buffer.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/block_tester.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/stream_debug.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_block_detector.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_content.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_content_view.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_content_view_reads_real_envelopes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_declared_markers_are_stamped.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_input.txt +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_mermaid_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_parsers/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_parsers/test_flashcard_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_parsers/test_parser_drift_guards.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_parsers/test_quiz_natural_shape.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_parsers/test_various_parsers.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_registered_kinds_are_kind_blocks.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_results/2026-03-24_13-54-33_decision_variant_b.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_stream_processor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_streaming_partial_kinds.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/test_table_stream_stability.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/ts_bridge/parse_blocks.ts +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/blocks/tests/ts_bridge/stream_partials.ts +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/media_fallback/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/media_fallback/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/media_fallback/handler.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/media_fallback/resolvers.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/streaming-constitution.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/vision/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/vision/image_processor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/vision/tests/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/vision/tests/test_image_processor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/vision/tests/test_vision_classes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/processing/vision/vision_classes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/_media_dims.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/admission.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/anthropic/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/anthropic/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/anthropic/anthropic_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/anthropic/broker.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/anthropic/client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/anthropic/translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/base_media.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/base_translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/cache_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/capability_vocabulary.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/cerebras/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/cerebras/cerebras_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/cerebras/client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/cerebras/translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/citation_emit.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/cohere/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/cohere/rerank.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/cerebras_model_sync.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/google_model_sync.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/groq_model_sync.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/model_sync.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/openai_model_sync.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/together_model_sync.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/data_sync/xai_model_sync.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/debug_pretty_print.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/eleven_labs/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/eleven_labs/TASK-Update-elevent-api.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/eleven_labs/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/eleven_labs/client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/eleven_labs/direct_dialogue.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/eleven_labs/elevenlabs_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/eleven_labs/pronunciation_dict.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/eleven_labs/tts_streaming.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/errors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/fastino/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/fastino/client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/fastino/errors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/fastino/fastino_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/fastino/models.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/generic_openai/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/generic_openai/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/generic_openai/endpoint_probe.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/generic_openai/generic_openai_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/generic_openai/huggingface_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/generic_openai/translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/google_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/google_client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/google_image_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/google_interactions_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/google_video_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/sample_podcast_direct.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/specialized.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/google/translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/groq/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/groq/client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/groq/groq_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/groq/stt.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/groq/translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/keys.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/mock/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/mock/mock_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/model_listing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/moonshot/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/moonshot/moonshot_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/openai/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/openai/client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/openai/openai_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/openai/openai_image_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/openai/openai_video_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/openai/realtime.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/openai/translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/outbound_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/outbound_params.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/provider_io_capabilities.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/reasoning.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/reasoning_stream_state.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/replicate/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/replicate/model_descriptors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/replicate/rate_limit.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/replicate/replicate_image_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/replicate/replicate_video_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/resolved_capabilities.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/sdk_drift.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/snapshot.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/snapshot_redactors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/tests/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/tests/fixtures/openai_responses_request.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/tests/test_capture_client_sdk_flavor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/tests/test_outbound_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/tests/test_tts_segmentation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/together/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/together/client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/together/together_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/together/together_image_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/together/together_video_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/together/translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/unified_client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/xai/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/xai/client.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/xai/realtime.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/xai/translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/xai/xai_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/xai/xai_image_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/providers/xai/xai_video_api.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/reports/cost_analysis.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/schema/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/schema/grammar_budget.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/schema/lint.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/schema/rules.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/skills/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/skills/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/skills/ingest.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/skills/models.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/skills/preamble.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/skills/providers.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/skills/resolver.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/skills/startup_check.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/host_isolation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/profile_factory.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/record_replay.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/tests/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/tests/conftest.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/tests/test_catalog_canonicalize.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/tests/test_catalog_controls.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/tests/test_catalog_manager.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/testing/tests/test_record_replay.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/clean_response.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/cx_storage_response.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/final_response.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/openai/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/openai/background_stream_async.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/openai/conversation_id_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/openai/openai_function_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/openai/openai_image_input.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/openai/openai_small_tests.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/openai/sample_output.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/prompts/agent_comparison.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/prompts/prompt_to_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/prompts/test_basic_prompts.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/sample_db.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/small_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_agent_loop_actions.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_apply_overrides.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_error_handling.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_evaluators.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_graph_nodes_turn_failure.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_image_pipeline_actions.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_judge_primitive.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_llm_params_drift.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_response_format.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_strict_json.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/test_translations.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tests/veo_generation.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/ARG_RECOVERY.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/FEATURE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/TOOLS_AUDIT_REPORT.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/TOOL_OUTPUT_VALIDATION_GATE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/TOOL_RESULT_SIZE_GATE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/USER_TOOL_WIRE_CONTRACT.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/_call_logger.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/_change_events.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/_db_log.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/_debug_log.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/_dispatch_util.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/_generated_declarations.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/_sandbox_proxy.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/_sandbox_runtime.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/agent_projection.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/agent_tool.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/_coercion.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/browser_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/code_ingest_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/db_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/dictionary_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/dispatcher_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/fs_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/math_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/memory_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/rag_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/shell_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/text_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/user_secrets_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/arg_models/web_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/db_hints.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/declared.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/document_validation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/dynamic_drain.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/error_remedy.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/execution_authorization.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/executor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/external_handlers.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/external_mcp.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/fault.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/gates.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/guardrails.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/handle_tool_calls.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/image_outputs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/STORE_HTML_SERVICE.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/TOOLS_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/_kd6_sabotage.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/_summarize_helper.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/_web_read_caps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/agent_call.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/browser_discovery.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/bundle_lister.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/cloud_files.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/code.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/code_ingest.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/ctx.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/ctx_write.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/database.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/datasets_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/debug_traces_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/desktop_discovery.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/dictionary.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/feedback_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/filesystem.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/kind_authoring.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/kind_component.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/kind_instance.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/kind_shared.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/math.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/memory.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/news.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/notes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/picklists_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/questionnaire.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/rag.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/random_wheel.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/seo.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/shell.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/skill.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/tasks.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/text.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/tool_component.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/travel.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/user_secrets_tool.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/vfs_filesystem.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/vfs_shell.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/vsc.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/web.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/implementations/widgets.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kind_stamp.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/agent_ops.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/agent_tasks.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/cms.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/code_docs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/context_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/database_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/execution.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/fact_check.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/filesystem.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/ide.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/kind_authoring.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/kind_components.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/kind_instances.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/media_forensics.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/personal_content.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/scope_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/text_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/tool_components.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/tool_loading.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/tool_traces.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/tooling.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/topical_map.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/udt_content.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/user_secrets.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/value_store.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/weather.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/wheel.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/workbench.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/kinds/workflow_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/knobs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/lifecycle.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/logger.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/mcp_sync.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/merge.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/models.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/output_caps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/output_models/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/output_models/seo.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/output_overflow.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/result_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/specs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/streaming.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/MODULE_README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/mimic_model_tests.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/register_kind_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/register_toolcomp_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_agent_projection.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_client_kinds.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_code_ingest.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_content_ir_contracts.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_dispatch_validation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_document_tool_result.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_dynamic_drain.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_external_mcp.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_fault.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_memory_org_stamp.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_output_caps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_pending_injection_drain.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_preflight_executor_drop.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_random_wheel.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_research_web_caps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_result_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_screenshot_tool_result.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_seo_async_keyword_seam.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_seo_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_surface_enforcement.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_tool_aliases.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_tool_component.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_tool_result_kinds.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_tool_specs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_toolcomp_sample_caps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_toolcomp_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_validate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_vfs_adapters.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_vfs_routing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tests/test_wire_names.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tool_aliases.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tool_binding_db.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tool_def_db.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tool_executor_db.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/tool_source.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/turn_ledger.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/validate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/validation/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/validation/engine.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/validation/runner.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/validation/schema.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/EXTRACTION.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/README.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/adapters/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/backends/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/backends/memory.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/backends/postgres.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/cache.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/awk.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/base.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/cat.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/cd.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/chmod.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/chown.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/cp.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/cut.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/df.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/diff.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/du.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/echo.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/env.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/file.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/find.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/grep.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/gzip.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/head.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/ln.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/ls.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/mkdir.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/mv.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/patch.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/printf.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/ps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/pwd.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/read_cmd.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/readlink.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/realpath.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/rm.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/rmdir.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/runner.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/sed.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/set_cmd.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/sort.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/stat.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/stubs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/tail.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/tar.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/test_cmd.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/touch.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/tr.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/tree.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/type.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/uniq.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/unzip.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/wc.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/which.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/commands/xargs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/core.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/errors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/cat.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/claude_tool.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/coreutils_errors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/dates.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/grep.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/ls.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/sizes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/stat.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/mimicry/traceback.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/paths.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/shell/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/shell/ast.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/shell/env.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/shell/executor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/shell/expansion.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/shell/heredoc.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/shell/lexer.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/shell/parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/shell/runner.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs/workspace.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/tools/vfs_routing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/utils/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/utils/cache.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai_implementation_master_plan.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/scripts/contract_closure.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/scripts/dataclass_api_inventory.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/scripts/emit_contract_schema.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/scripts/engine_boundary_census.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/scripts/export_conformance_corpus.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/scripts/release.sh +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/scripts/verify_kind_instance_actor_artifact.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/browser_handoff_fakes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/conftest.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_catalog_no_db.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_client_host_validate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_control_rules_payload.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_credential_resolver_seam.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_execute_with_store.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_execution_agent_source.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_import_surface.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_key_resolver.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_ledger_truth_survives_persistence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_lifecycle_no_db.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_mandate_source.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_no_db_streaming_with_tool.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_pricing_client_host.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_row_schema_fidelity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_source_kind_collision.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/client_host/test_tool_source.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/coding_sessions/test_models.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/error_browser_controlled_by_human.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/error_configuration.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/error_not_found_legacy.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/error_profile_access_denied.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/error_profile_busy.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/error_profile_not_found.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/error_stale_run.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/get_element_ok.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/human_required_captcha.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/human_required_credential_missing.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/human_required_mfa.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/navigate_ok_default_profile.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/navigate_ok_named_profile.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/navigate_ok_transient_legacy.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/reopened_for_handoff.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/resume_page_inventory.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/resume_page_inventory_truncated.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/screenshot_media_ref_error.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/browser_s6/screenshot_ok_media_ref.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/anthropic_adaptive.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/anthropic_adaptive__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/anthropic_standard.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/cerebras_reasoning.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/cerebras_reasoning_toggle.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/cerebras_standard.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/google_thinking.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/google_thinking_3__flash.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/google_thinking_3__pro.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/google_thinking__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/groq_reasoning.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/groq_reasoning_toggle.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/groq_standard.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/groq_standard__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/huggingface_standard.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/openai_reasoning.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/openai_reasoning_minimal.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/openai_reasoning_xhigh.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/openai_reasoning_xhigh__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/openai_standard.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/openai_standard__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/together_text_standard.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/xai_reasoning.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/chat_param_golden/xai_standard.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/citations/anthropic_pdf_doc.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/citations/anthropic_search_result.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/citations/anthropic_stream_events.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/citations/anthropic_text_doc.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/citations/gemini_grounding.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/citations/openai_web_search_annotations.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/constraint-eval-fixture.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/fingerprint_vectors.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/kind_schemas_sample.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/live_agent_variables.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/google_image.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/google_image__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/google_video.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/openai_image.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/openai_image__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/openai_image__v3.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/openai_video.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_image.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_image__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_image__v3.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_image__v4.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_image__v5.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_image__v6.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_image__v7.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_video.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_video__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_video__v3.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_video__v4.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/replicate_video__v5.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_image.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_image__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_image__v3.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_image__v4.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_image__v5.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_image__v6.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_video.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_video__v2.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_video__v3.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_video__v4.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/together_video__v5.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/xai_image.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/media_family_rules/xai_video.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/refresh_kind_schemas.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/w59_prescriber_outputs.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/fixtures/wire_replay/gemini_tool_turn_snapshot.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/memory/test_storage_identity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/memory/test_token_count_isolation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/fixtures/01_mixed_prose_and_blocks.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/fixtures/02_nested_xml_and_attributes.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/fixtures/03_fences_and_languages.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/fixtures/04_json_patterns.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/fixtures/05_malformed_and_partial.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/fixtures/06_dividers_media_tree.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/fixtures/07_unrecognized_xml.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/fixtures/08_embedded_kind_containers.md +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/fixtures/variable-kind-bridge.generated.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/harness.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/test_partial_kind_fixture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/test_partial_value_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/test_ts_parser_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/parity/test_variable_kind_fixture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/conftest.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/test_chat_door_declares_actor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/test_conversation_visibility.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/test_coordinator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/test_postgres_text.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/test_registry_policy.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/test_replay.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/test_replay_permanent_quarantine.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/test_replay_permanent_signature_siblings.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/persistence/test_replay_policy.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/plans/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/plans/test_plan_compiler.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/plans/test_plan_engine_mock.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/plans/test_plan_types.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/plans/test_plan_validation_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/providers/test_cohere_rerank.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/providers/test_transport_truncation_is_retryable.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/fixtures/content_block_shapes.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/fixtures/message_shapes.json +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_code_execution_roundtrip.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_content_block_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_contract_closure.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_contract_schema.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_dataclass_api_inventory.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_extra_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_media_block_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_s1_corpus_replay.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_s1_message_and_response_replay.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_structured_input_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_token_usage_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_unexpected_keys.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_unified_config_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_unified_config_preconditions.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_unified_content_union.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_unified_message_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/pydantic_migration/test_unified_response_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_adversarial_content_contract.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_adversarial_prompt_door.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_action_input.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_call_history.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_call_result_mode.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_executor_structured_output.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_handoff.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_input_kind_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_produce_kind_binding.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_recursion_depth.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_result_mode.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_run_cost_settlement.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_start_mandate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_tool_projection_args.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_agent_variable_defaults.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_anthropic_effort_ceiling.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_anthropic_hosted_search.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_anthropic_reasoning_structured_output.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_anthropic_stream_event_loop.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_anthropic_terminal_assistant_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_arg_error_hints.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_assignment_empty_answer_refusal.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_auto_assignment.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_batch_dispatch.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_block_envelope.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_block_envelope_families.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_block_registry_loader.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_bound_filesystem_adapter.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_broadcast_agent_result_binding.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_browser_args_forbid.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_browser_handoff_park_resume.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_browser_s6_fixtures.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_browser_s6_outcomes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_cache_state_persistence_scope.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_capability_vocabulary.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_catalog_controls_supported_false_beats_processor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_catalog_media_processors_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_catalog_model_lifecycle.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_catalog_rule_vocabulary.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_catalog_tts_stt.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_change_claim_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_chat_param_golden.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_child_source_context.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_citation_emit.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_citations_normalization.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_citations_search_result_wire.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_code_execute_python_arguments.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_code_store_html_async.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_component_source_gate_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_config_hydration_sanitization.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_constraint_eval_fixture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_content_deserializer_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_context_action_recovery.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_context_engine_multi_scope_cells.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_context_patch_failure_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_context_trim_active_loop.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_adoption.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_history_fence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_integrity_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_labeler_provider.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_labeler_rendezvous.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_memo_scope.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_persistence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_provider.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_rebuild_hydration.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_resolver_responder.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_response_format_transition.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_runtime.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_step_title.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_conversation_title_backfill.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_cross_family_blast.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_cross_family_blast_media.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_ctx_key_reconciliation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_ctx_known_missing_key.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_ctx_summary_fallback.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_data_ref_allowlist.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_dataset_output_caps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_db_hints.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_delegated_arg_recovery.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_delegated_schema_contract.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_delegation_authority.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_desktop_discovery_contract.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_document_output_ceiling.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_document_output_ceiling_at_send.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_document_text_serialization.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_dropped_setting_warning.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_durable_run_preflight.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_elevenlabs_audio_streaming.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_entity_input_context.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_ephemeral_message_lease.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_equivalence_law.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_executor_cancel_persist.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_executor_user_message_reservation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_external_mcp_streaming.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_failed_turn_thread_text.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_fallback_http_code_boundaries.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_fastino_extraction.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_file_handles.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_file_search_match_ripgrep_rows.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_fingerprint_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_format_scraped_content.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_function_calling_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_generic_openai_registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_generic_openai_streaming_usage.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_generic_openai_translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_google_interactions.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_google_safety_settings.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_google_search_with_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_google_specialized.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_google_tool_schema_items.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_google_wire_replay_payload.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_graph_node_normalization_offload.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_graph_node_registration.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_graph_nodes_structured_output.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_grooming_stubs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_guardrails_dedupe_exempt.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_guest_registry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_history_hydration.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_host_authored_user_turns.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_host_seam_isolation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_idless_tool_call_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_image_ref_result_content.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_import_no_config.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_infer_discriminator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_injection_catalog.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_interrupt_tail_hiding.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_issue_capture_context.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_iteration_assistant_announcement.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_kind_authoring_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_kind_discriminator_first.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_kind_instance_actor_artifact.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_kind_instance_tools.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_kind_surface_bootstrap.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_kinds_response_format.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_knowledge_search_relevance_report.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_llm_stream_text.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_llm_to_pydantic_streaming.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_log_delegated_runtime_pin.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_loop_guard_reason_travels.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_mandate_carrier_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_mandate_offer_rename.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_mandates_runtime_honesty.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_mcp_discovered_tool_purpose_boundary.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_mcp_lister_user_auth_discovery.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_mcp_sync.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_billing_basis.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_block_carries_visibility.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_fallback.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_history_single_locator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_identity_consumers.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_kind_reconciliation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_node_output_durability.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_node_output_kinds.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_output_durability.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_media_visibility_policy.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_member_depth_warning.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_memory_wire_contract.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_message_part_wire_contract.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_message_position_contract.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_minor_image_safety.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_missing_provider_usage_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_model_authoring_resolution.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_model_listing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_model_visibility.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_moonshot_error_handling.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_named_agent_mandate_definition.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_nested_agent_stream_mutes.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_no_inline_agent_system_prompts.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_no_off_funnel_anthropic.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_no_traceback_destroying_tool_errors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_offering_pin.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_openai_chat_tool_result_image.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_openai_config_converter_boundary.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_openai_responses_foreign_tool_ids.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_openai_stream_event_loop.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_openai_stream_terminal.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_openai_tool_call_message_adjacency.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_organization_system_actor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_orphan_tool_use_repair.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_output_caps_list.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_output_ceiling_classifier.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_overload_reroute.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_paid_completion_guards.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_parent_lineage_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_parse_llm_json_node.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_persistence_coordinator_ownership.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_persistence_error_text.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_podcast_cast_preview.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_podcast_heartbeat.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_podcast_image_provider_distribution.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_podcast_media_caps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_podcast_official_video_media_resolution.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_podcast_post_prep.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_podcast_script_usage.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_podcast_usage_resume.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_podcast_voice_gender.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_pricing_drift_routing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_pricing_exact_match_only.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_programmatic_agent_prepare_hook.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_prompt_ai_view.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_prompt_caching.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_admission.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_billed_usage_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_client_event_loop.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_error_ownership.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_id_never_message_pk.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_io_capabilities.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_outage_seam.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_overload_retry_policy.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_reasoning_wrapper_concurrency.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_reroute_visibility.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_provider_tool_dedup.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_reasoning_persistence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_reasoning_state_signal.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_request_snapshot_assistant_text_full.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_request_snapshot_json_safe.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_request_snapshot_provider_stamp.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_request_snapshot_store_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_request_summary_parity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_required_members.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_resolved_capabilities.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_resource_ref_normalization.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_response_parser_repair.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sampling_param_gating.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sandbox_token_cache_isolation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sandbox_transient_outage_retry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_schema_lint.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_schema_oneof_rewrite.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_schema_rules_const_rewrite.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_schema_rules_kind_first.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sdk_drift_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sdk_kwargs_guard_census.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_send_boundary_cache_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_send_boundary_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_send_boundary_preflight.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_skill_ingest_flat_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_skill_provider_scope.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_speech_model_chat_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sql_arg_coercion.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sql_catalog_write_hook.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sql_error_classification.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sql_match_filters.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sql_schema_aware_stamp.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_sql_write_match_lists.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_standing_output_contract_dispatch.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_structured_info_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_structured_input_tool_injection.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_structured_output_empty_refusal.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_structured_output_schema_strip.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_structured_sql_query.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_success_trace_evidence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_summarize_helper.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_supersede_failed_turns.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_system_instruction_persist_roundtrip.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_system_prompt_freeze.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_system_run_cost_only_persistence.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_terminal_provider_failure_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_terminal_response_guard.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_thinking_cross_provider_anthropic.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_thinking_cross_provider_google.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_together_image_pacing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_together_reasoning_params.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_blob_media_identity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_call_backfill_cache.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_call_details_pairing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_call_stats_key.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_completion_inline_persist.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_dispatch_provenance_and_ceiling.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_error_from_exception.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_id_edge_lazy_load.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_ledger_truth_in_structured_output.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_logger_standalone_ownership.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_logger_user_request_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_registry_annotations.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_registry_extension_import.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_registry_reload.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_result_dedup.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_result_error_is_persisted.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_result_guard_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_result_json_boundary.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_result_validator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_structured_output_conflict.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_trace_parent_ordering.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_validation_dispatch.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_validation_enum.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_validation_runner.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tool_validation_unbound_ownership.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_toolcomp_get_context_workflow.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_toolcomp_versioning.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_trace_tags.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_translator_base_request.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_translator_golden.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_trim_summary_per_iteration.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_truncated_response_capture.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_truncation_notice_context.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tts_speaker_alignment.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tts_speaker_gender_adoption.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_tts_structural_keys_stripped.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_unknown_tool_hint.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_unpriced_cost_never_silent_zero.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_user_request_memo_scope.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_variable_kinds_bridge.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_variable_mapping.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_variable_schema_fidelity.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_web_read_caps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_web_search_billing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_web_search_capability_gate.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_wire_swap_budget.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_wire_swap_role_gating.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_workbook_document_input.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_write_governed_schemas.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_xai_native_translator.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/test_youtube_url_normalization.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/__init__.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/conftest.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/fixtures.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/harness.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/test_fidelity_cat.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/test_fidelity_errors.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/test_fidelity_find.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/test_fidelity_grep.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/test_fidelity_ls.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/fidelity/test_harness_routing.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cache.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_awk.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_cat.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_cd.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_chmod.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_chown.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_cp.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_cut.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_df.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_diff.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_du.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_echo.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_env.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_file.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_find.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_grep.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_gzip.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_head.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_ln.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_ls.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_mkdir.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_mv.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_patch.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_printf.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_ps.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_pwd.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_read.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_readlink.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_realpath.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_rm.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_rmdir.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_sed.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_set.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_sort.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_stat.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_stubs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_tail.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_tar.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_test.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_touch.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_tr.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_tree.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_type.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_uniq.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_unzip.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_wc.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_which.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_cmd_xargs.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_command_base.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_core.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_mimicry.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_package_isolation.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_paths.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_registry_isolation_contract.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_shell_executor.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_shell_expansion.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_shell_lexer.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_shell_parser.py +0 -0
- {matrx_ai-0.5.330 → matrx_ai-0.5.332}/tests/vfs/test_workspace_identity_no_silent_fallback.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: matrx-ai
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.332
|
|
4
4
|
Summary: Unified multi-provider AI client, orchestration, and tool system
|
|
5
5
|
Project-URL: Homepage, https://github.com/AI-Matrix-Engine/aidream-current
|
|
6
6
|
Project-URL: Repository, https://github.com/AI-Matrix-Engine/aidream-current
|
|
@@ -31,13 +31,13 @@ Requires-Dist: google-genai>=1.75.0
|
|
|
31
31
|
Requires-Dist: groq>=1.2.0
|
|
32
32
|
Requires-Dist: httpx
|
|
33
33
|
Requires-Dist: json-repair
|
|
34
|
-
Requires-Dist: matrx-assignment>=0.1.
|
|
35
|
-
Requires-Dist: matrx-connect>=0.1.
|
|
36
|
-
Requires-Dist: matrx-files>=0.2.
|
|
37
|
-
Requires-Dist: matrx-graph>=0.2.
|
|
38
|
-
Requires-Dist: matrx-runtime>=0.0.
|
|
39
|
-
Requires-Dist: matrx-scraper[browser]>=0.2.
|
|
40
|
-
Requires-Dist: matrx-utils>=2.0.
|
|
34
|
+
Requires-Dist: matrx-assignment>=0.1.21
|
|
35
|
+
Requires-Dist: matrx-connect>=0.1.110
|
|
36
|
+
Requires-Dist: matrx-files>=0.2.172
|
|
37
|
+
Requires-Dist: matrx-graph>=0.2.170
|
|
38
|
+
Requires-Dist: matrx-runtime>=0.0.104
|
|
39
|
+
Requires-Dist: matrx-scraper[browser]>=0.2.218
|
|
40
|
+
Requires-Dist: matrx-utils>=2.0.43
|
|
41
41
|
Requires-Dist: numpy>=2.0
|
|
42
42
|
Requires-Dist: openai>=2.35.1
|
|
43
43
|
Requires-Dist: pathspec>=1.0.0
|
|
@@ -231,6 +231,11 @@ told the step "stopped partway through". Guards:
|
|
|
231
231
|
|
|
232
232
|
## Change log
|
|
233
233
|
|
|
234
|
+
- 2026-09-16 — An unbound `workflow.step_intelligence` step now records only
|
|
235
|
+
`mandate_holder_unbound`: the generic resolver does not also file
|
|
236
|
+
`mandate_resolution_failed`, because the step continues on its authored
|
|
237
|
+
configuration rather than refusing the run.
|
|
238
|
+
|
|
234
239
|
- 2026-09-15 — A strict-JSON call made directly by a graph action still resolves
|
|
235
240
|
`workflow.step_intelligence` when its ambient context is `workflow_run`.
|
|
236
241
|
The generic funnel does not stamp that mandate for non-workflow callers.
|
|
@@ -192,7 +192,9 @@ async def hold_step(
|
|
|
192
192
|
agent = None
|
|
193
193
|
try:
|
|
194
194
|
resolution = await resolve_mandate_by_key(
|
|
195
|
-
WORKFLOW_STEP_INTELLIGENCE_MANDATE,
|
|
195
|
+
WORKFLOW_STEP_INTELLIGENCE_MANDATE,
|
|
196
|
+
consumer=consumer,
|
|
197
|
+
report_failure=False,
|
|
196
198
|
)
|
|
197
199
|
if resolution.holder_type != "agent" or resolution.source is None:
|
|
198
200
|
raise MandateResolutionUnavailable(
|
|
@@ -251,7 +251,12 @@ def _capture_user_input(value: Any) -> str | None:
|
|
|
251
251
|
return json.dumps(value, ensure_ascii=False, default=str)
|
|
252
252
|
|
|
253
253
|
|
|
254
|
-
async def resolve_mandate_by_key(
|
|
254
|
+
async def resolve_mandate_by_key(
|
|
255
|
+
mandate_key: str,
|
|
256
|
+
*,
|
|
257
|
+
consumer: str,
|
|
258
|
+
report_failure: bool = True,
|
|
259
|
+
) -> MandateResolution:
|
|
255
260
|
"""Ask the host WHICH agent a mandate KEY points at, or refuse.
|
|
256
261
|
|
|
257
262
|
THE one resolution door. Two kinds of consumer arrive here and both must
|
|
@@ -274,6 +279,11 @@ async def resolve_mandate_by_key(mandate_key: str, *, consumer: str) -> MandateR
|
|
|
274
279
|
|
|
275
280
|
Raises :class:`MandateResolutionUnavailable` when no resolver is installed or
|
|
276
281
|
the resolver fails. It NEVER answers from an id frozen in code.
|
|
282
|
+
|
|
283
|
+
``report_failure`` is false only for a consumer that deliberately absorbs an
|
|
284
|
+
unfulfilled mandate and emits its own truthful durable finding. That avoids
|
|
285
|
+
filing a second ``mandate_resolution_failed`` row which falsely says the run
|
|
286
|
+
was refused after the consumer completed it on its authored configuration.
|
|
277
287
|
"""
|
|
278
288
|
if not mandate_key:
|
|
279
289
|
raise MandateResolutionUnavailable("<none>", consumer, "no mandate_key was given")
|
|
@@ -288,7 +298,8 @@ async def resolve_mandate_by_key(mandate_key: str, *, consumer: str) -> MandateR
|
|
|
288
298
|
try:
|
|
289
299
|
resolution = await _MANDATE_RESOLVER(mandate_key)
|
|
290
300
|
except Exception as exc:
|
|
291
|
-
|
|
301
|
+
if report_failure:
|
|
302
|
+
await _report_resolution_failure(mandate_key=mandate_key, consumer=consumer, exc=exc)
|
|
292
303
|
raise MandateResolutionUnavailable(
|
|
293
304
|
mandate_key,
|
|
294
305
|
consumer,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "matrx-ai"
|
|
3
|
-
version = "0.5.
|
|
3
|
+
version = "0.5.332"
|
|
4
4
|
description = "Unified multi-provider AI client, orchestration, and tool system"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -65,22 +65,22 @@ dependencies = [
|
|
|
65
65
|
"asyncpg>=0.31.0",
|
|
66
66
|
# --- Matrx ecosystem ---
|
|
67
67
|
# media/media_persistence.py imports VisibilityLiteral, first exported by 2.0.7.
|
|
68
|
-
"matrx-utils>=2.0.
|
|
69
|
-
"matrx-files>=0.2.
|
|
68
|
+
"matrx-utils>=2.0.43",
|
|
69
|
+
"matrx-files>=0.2.172",
|
|
70
70
|
# 0.1.26+ exports the Masterwork* event models used here (renamed 2026-08-17;
|
|
71
71
|
# the next matrx-connect release is the first tag that exports the new names).
|
|
72
|
-
"matrx-connect>=0.1.
|
|
72
|
+
"matrx-connect>=0.1.110",
|
|
73
73
|
# actions.register_node is imported at module scope and first shipped in 0.1.22.
|
|
74
|
-
"matrx-graph>=0.2.
|
|
74
|
+
"matrx-graph>=0.2.170",
|
|
75
75
|
# tools.implementations imports the browser implementation eagerly.
|
|
76
|
-
"matrx-scraper[browser]>=0.2.
|
|
76
|
+
"matrx-scraper[browser]>=0.2.218",
|
|
77
77
|
# matrx-runtime (the Request Management Layer): the conversation executor
|
|
78
78
|
# (orchestrator/conversation_runtime.py) is a CONSUMER of its ExecutionEngine —
|
|
79
79
|
# one conversation = one global_execution. ai → runtime is the acyclic edge.
|
|
80
|
-
"matrx-runtime>=0.0.
|
|
80
|
+
"matrx-runtime>=0.0.104",
|
|
81
81
|
# Payload-agnostic coordinated assignment planner/coordinator. The agent
|
|
82
82
|
# workflow action consumes it; the assignment package never imports AI.
|
|
83
|
-
"matrx-assignment>=0.1.
|
|
83
|
+
"matrx-assignment>=0.1.21",
|
|
84
84
|
# --- Virtual Filesystem (matrx_ai.tools.vfs) ---
|
|
85
85
|
"fsspec>=2026.4.0",
|
|
86
86
|
"wcmatch>=10.0",
|
|
@@ -20,6 +20,13 @@ from typing import Any
|
|
|
20
20
|
from uuid import uuid4
|
|
21
21
|
|
|
22
22
|
import pytest
|
|
23
|
+
from aidream.services.ai_execution.ai_task_blocks import BlockStreamingEmitter
|
|
24
|
+
from aidream.services.runtime.workflow_events import EventRecordingEmitter
|
|
25
|
+
from matrx_connect.emitters.control_tokens import (
|
|
26
|
+
CONTROL_TOKEN_REGISTRY,
|
|
27
|
+
ControlTokenRegistry,
|
|
28
|
+
ControlTokenSpec,
|
|
29
|
+
)
|
|
23
30
|
|
|
24
31
|
import matrx_ai.orchestrator.executor as executor_mod
|
|
25
32
|
from matrx_ai.config import MessageList, TextContent, UnifiedConfig, UnifiedMessage
|
|
@@ -31,11 +38,6 @@ from matrx_ai.db.control_tokens import (
|
|
|
31
38
|
)
|
|
32
39
|
from matrx_ai.orchestrator.execution_state import ExecutionState
|
|
33
40
|
from matrx_ai.orchestrator.requests import AIMatrixRequest, CompletedRequest
|
|
34
|
-
from matrx_connect.emitters.control_tokens import (
|
|
35
|
-
CONTROL_TOKEN_REGISTRY,
|
|
36
|
-
ControlTokenRegistry,
|
|
37
|
-
ControlTokenSpec,
|
|
38
|
-
)
|
|
39
41
|
|
|
40
42
|
CONVERSATION_ID = "11111111-1111-1111-1111-111111111111"
|
|
41
43
|
USER_ID = "22222222-2222-2222-2222-222222222222"
|
|
@@ -317,6 +319,49 @@ async def test_completed_turn_persists_clean_text_plus_metadata(persist_harness,
|
|
|
317
319
|
], "the value must survive as structured metadata — cleaning is not discarding"
|
|
318
320
|
|
|
319
321
|
|
|
322
|
+
@pytest.mark.asyncio
|
|
323
|
+
async def test_event_recording_block_stream_replays_token_at_completed_persistence(
|
|
324
|
+
persist_harness, declared
|
|
325
|
+
):
|
|
326
|
+
"""The detached event recorder has no live token channel, but its explicit
|
|
327
|
+
terminal persistence path retains the value in the resulting row.
|
|
328
|
+
"""
|
|
329
|
+
|
|
330
|
+
class _WorkflowBlockSink:
|
|
331
|
+
accepts_render_blocks = True
|
|
332
|
+
|
|
333
|
+
async def send_chunk(self, _text: str) -> None:
|
|
334
|
+
return None
|
|
335
|
+
|
|
336
|
+
async def send_render_block(self, _data: dict[str, Any]) -> None:
|
|
337
|
+
return None
|
|
338
|
+
|
|
339
|
+
persistence_mod, creates, _updates = persist_harness
|
|
340
|
+
raw = "We are nearly there.\nWRAP_RATING: 4\n"
|
|
341
|
+
event_recorder = EventRecordingEmitter(base=_WorkflowBlockSink(), run_id="run-1")
|
|
342
|
+
block_emitter = BlockStreamingEmitter(
|
|
343
|
+
event_recorder, terminal_control_token_replay=True
|
|
344
|
+
)
|
|
345
|
+
|
|
346
|
+
await block_emitter.send_chunk(raw)
|
|
347
|
+
await block_emitter.finalize_blocks()
|
|
348
|
+
assert "WRAP_RATING" not in block_emitter.get_turn_text()
|
|
349
|
+
|
|
350
|
+
await persistence_mod.persist_completed_request(
|
|
351
|
+
_completed_turn("how ready are we?", raw),
|
|
352
|
+
conversation_id=CONVERSATION_ID,
|
|
353
|
+
state=ExecutionState(),
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
assistant_rows = [c for c in creates if c.get("role") == "assistant"]
|
|
357
|
+
assert len(assistant_rows) == 1
|
|
358
|
+
row = assistant_rows[0]
|
|
359
|
+
assert "WRAP_RATING" not in _row_text(row)
|
|
360
|
+
assert row["metadata"][CONTROL_TOKEN_METADATA_KEY] == [
|
|
361
|
+
{"name": "WRAP_RATING", "value": "4", "declared_by": WRAP_RATING.declared_by}
|
|
362
|
+
]
|
|
363
|
+
|
|
364
|
+
|
|
320
365
|
@pytest.mark.asyncio
|
|
321
366
|
async def test_a_persons_own_words_are_never_cleaned(persist_harness, declared):
|
|
322
367
|
persistence_mod, creates, _updates = persist_harness
|
|
@@ -149,6 +149,26 @@ async def test_resolver_failure_runs_and_screams(monkeypatch) -> None:
|
|
|
149
149
|
assert "no Holder at any rung" in held.metadata[MANDATE_UNHELD_METADATA_KEY]["detail"]
|
|
150
150
|
|
|
151
151
|
|
|
152
|
+
@pytest.mark.asyncio
|
|
153
|
+
async def test_absorbed_resolution_failure_files_only_the_unheld_finding(monkeypatch) -> None:
|
|
154
|
+
"""A seedless workflow step runs, so it must not also claim it refused."""
|
|
155
|
+
rows: list[dict[str, Any]] = []
|
|
156
|
+
|
|
157
|
+
def _record_error(error, **fields):
|
|
158
|
+
rows.append({"error": str(error), **fields})
|
|
159
|
+
return None
|
|
160
|
+
|
|
161
|
+
from matrx_ai import _ext
|
|
162
|
+
|
|
163
|
+
monkeypatch.setitem(_ext._registry, "record_error", _record_error)
|
|
164
|
+
_install(RuntimeError("no Holder at any rung"), monkeypatch)
|
|
165
|
+
|
|
166
|
+
held = await hold_step(dict(STEP), spec_type="ai.llm", consumer="ai.llm.chat")
|
|
167
|
+
|
|
168
|
+
assert held.config["model"] == "author-model"
|
|
169
|
+
assert [row["kind"] for row in rows] == [MANDATE_HOLDER_UNBOUND_KIND]
|
|
170
|
+
|
|
171
|
+
|
|
152
172
|
@pytest.mark.asyncio
|
|
153
173
|
async def test_step_resolves_the_mandate_and_stamps_the_holder(monkeypatch) -> None:
|
|
154
174
|
asked = _install(MandateResolution(source=_Source()), monkeypatch)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{matrx_ai-0.5.330 → matrx_ai-0.5.332}/matrx_ai/config/tests/test_get_output_excludes_thinking.py
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
|