metaobjects 0.19.5__tar.gz → 0.19.7__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.
- {metaobjects-0.19.5 → metaobjects-0.19.7}/PKG-INFO +1 -1
- {metaobjects-0.19.5 → metaobjects-0.19.7}/pyproject.toml +1 -1
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/validation_passes.py +70 -29
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/prompt.json +2 -1
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_template_toolcall.py +2 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/uv.lock +1 -1
- {metaobjects-0.19.5 → metaobjects-0.19.7}/.gitignore +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/LICENSE +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/README.md +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/hatch_build.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/agent_context/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/agent_context/scaffold.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/apidocs/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/apidocs/api_model.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/apidocs/builder.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/apidocs/naming.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/apidocs/paths.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/apidocs/renderer.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/attr_class_map.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/cli.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/KNOWN_GAPS.md +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/config.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/extract_delegate_emitter.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/extract_schema_emitter.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/format.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/fr010_field_mapping.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generator_registry.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/entity_model.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/extractor_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/filter_allowlist_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/fr019_shared_enum.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/m2m_codegen.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/output_parser_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/output_prompt_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/payload_vo_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/render_helper_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/router_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/template_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/tph_plan.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/trace_helper_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/instance_artifacts.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/output_format_spec_emitter.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/overwrite_policy.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/runner.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/runtime/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/runtime/filter_parser.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/template_codegen/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/template_codegen/output_pattern.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/template_codegen/template_data.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/template_codegen/template_spec.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/type_map.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/core_types.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/datatype.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/documentation/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/documentation/doc_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/documentation/doc_provider.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/documentation/doc_schema.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/errors.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/merge.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/meta_data_loader.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/registered_validation.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/sources/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/sources/directory_source.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/sources/file_source.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/sources/meta_data_source.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/sources/uri_source.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/validate_discriminator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/validate_field_readonly.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/validate_source_escapes.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/validate_source_parameter_ref.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/validate_source_physical_names.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/attr/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/attr/attr_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/attr/meta_attr.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/field/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/field/field_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/field/meta_field.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/identity/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/identity/identity_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/identity/meta_identity.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/index/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/index/index_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/index/meta_index.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/meta_object.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/meta_object_aware.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/object_class_registry.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/object_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/object_extract.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/value_object.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/relationship/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/relationship/meta_relationship.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/relationship/relationship_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/validator/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/validator/validator_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/meta_data.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/meta_root.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/db/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/db/db_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/db/db_provider.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/origin/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/origin/meta_origin.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/origin/origin_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/source/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/source/meta_source.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/source/source_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/layout/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/layout/layout_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/layout/meta_layout.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/ui/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/ui/ui_provider.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/view/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/view/meta_view.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/view/view_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/provider_extends.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/template/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/template/meta_template.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/template/prompt_provider.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/template/template_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/naming_refs.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/parser.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/parser_yaml.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/provider.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/py.typed +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/registry.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/registry_manifest.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/email_document.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/escapers.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/KNOWN_GAPS.md +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/coerce.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/extract.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/extract_map.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/json_forgiving_reader.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/locate.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/normalize.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/strip.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/types.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/xml_forgiving_reader.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/filesystem_provider.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/prompt/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/prompt/output_format_renderer.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/prompt/output_format_spec.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/prompt/prompt_field.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/prompt/prompt_overrides.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/prompt/prompt_style.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/renderer.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/verify.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/runtime/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/runtime/llm_recorder.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/runtime/n2m_resolver.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/runtime/object_manager.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/runtime/tph.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/serializer_json.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/shared/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/shared/base_types.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/shared/separators.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/shared/structural.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/source/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/source/error_source.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/source/json_path.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/source/semantic_diff.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/source/yaml_positions.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/attr.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/db.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/documentation.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/field.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/identity.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/index.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/layout.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/object.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/origin.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/relationship.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/source.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/template.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/ui-web.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/ui.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/validator.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/spec_metamodel/view.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/super_resolve.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/validation_types.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/yaml_desugar.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/extends/expected/BaseEntity.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/extends/expected/Program.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/extends/meta.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/nested-array/expected/AuthorBrief.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/nested-array/expected/PostBrief.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/nested-array/meta.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/scalars/expected/Metric.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/scalars/expected/Report.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/scalars/meta.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/vanilla/expected/Subscriber.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/golden/vanilla/meta.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_abstract_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_api_docs_builder.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_api_docs_paths.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_cli.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_cli_providers.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_cli_registry.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_cli_staleness_nudge.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_cli_verify_strict.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_cli_verify_subverbs.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_constants_config.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_entity_model.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_enum_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_extends_abstract_field_inheritance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_extractor_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_filter_allowlist_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_format.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_fr010_nested_object_prompt.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_fr010_output_codegen.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_fr019_shared_provided_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_generator_extension_seams.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_golden.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_inherit_without_restate_gate.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_inheritance_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_instance_artifacts.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_m2m_codegen.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_origin_nullability.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_output_parser_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_overwrite_policy.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_payload_vo_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_projection_compile.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_render_helper_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_render_helper_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_reverse_finders.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_router_autoset.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_router_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_runner.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_template_data.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_template_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_template_output_pattern.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_template_scope_helpers.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_template_scope_walk.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_template_spec.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_tph_codegen.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_trace_helper_generator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_type_map.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_validation_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/codegen/test_write_through.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/capabilities.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/conformance-expected-failures.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/conformance_adapter.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/corpus.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/expected_failures.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/fixture_discovery.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/navigator.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_api_docs_cross_port_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_extract_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_extract_object_verdict.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_fr010_loader_attrs.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_fr011_attrs.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_generator_registry_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_object_model_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_provider_composition_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_registry_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_runner_hardfail.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_spec_metamodel_embed.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_strict_attr_load.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_template_codegen_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_template_generator_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/test_yaml_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/conformance/yaml-conformance-expected-failures.json +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/api_contract_assertions.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/api_contract_jsonb_server.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/api_contract_m2m_server.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/api_contract_server.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/generated_jsonb_app.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/generated_m2m_app.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/generated_router_app.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/generated_tph_app.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/meta_ai_trace.yaml +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/normalization.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/postgres_container.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/query_runner.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/scenarios.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_api_contract.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_api_contract_generated.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_api_contract_jsonb.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_api_contract_m2m.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_api_contract_m2m_generated.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_api_contract_tph_generated.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_generated_router_uuid_pk.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_llm_call_trace.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_normalization.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_query_scenarios.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/integration/test_runtime_return_types.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/open_closed_proof_test.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/test_coerce.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/test_extract.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/test_extract_map.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/test_json_forgiving_reader.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/test_locate.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/test_model.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/test_normalize.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/test_strip.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/extract/test_xml_forgiving_reader.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/prompt/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/prompt/test_output_format_renderer.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/test_email_document.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/test_filesystem_provider.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/test_output_format_renderer_nested.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/test_output_prompt_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/test_render_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/test_render_max_chars.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/test_verify.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/render/test_verify_conformance.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/source/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/source/test_fr5c_merge_attribution.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/source/test_fr5d_reference_resolution.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/source/test_fr5e_database_source_shape.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/source/test_json_path.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/source/test_semantic_diff.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/source/test_source_on_node.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/source/test_yaml_positions.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/test_api_docs_accuracy.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/__init__.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_agent_context_staleness.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_capabilities.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_common_attrs.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_core_types.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_effective_package.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_errors.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_field_enum.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_field_map_validation.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_field_uuid_dbcolumntype.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_fr016_source_name_and_kind_aliases.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_index_lookup.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_llm_recorder.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_loader.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_loader_bom.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_loader_class.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_merge.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_meta_attr.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_meta_data.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_meta_source.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_module_shortcuts.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_n2m_resolver.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_n2m_resolver_inherited.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_object_manager_autoset_stamping.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_object_manager_uuid_coercion.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_object_manager_write_through.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_one_primary_source.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_parser.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_parser_yaml.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_provider.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_provider_extension.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_registry.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_registry_completeness.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_registry_extend.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_registry_sealed.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_relationship_referential_actions.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_resolution_key.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_runtime_resolution_key_binding.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_serializer.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_shared_constants.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_smoke.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_source_escapes.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_sources.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_strict_child_placement.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_super_resolve.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_template_wrong_subtype_attrs.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_validation_attr_schema.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_validation_filter_values.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_validation_origin_195.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_validation_origin_paths.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_validation_sort_field.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_validation_warnings.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_write_coercion_arrays.py +0 -0
- {metaobjects-0.19.5 → metaobjects-0.19.7}/tests/unit/test_yaml_desugar.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: metaobjects
|
|
3
|
-
Version: 0.19.
|
|
3
|
+
Version: 0.19.7
|
|
4
4
|
Summary: Cross-language metadata standard: declare typed entities once, generate idiomatic drift-checked code across languages — Python port.
|
|
5
5
|
Project-URL: Homepage, https://metaobjects.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/metaobjectsdev/metaobjects
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "metaobjects"
|
|
3
|
-
version = "0.19.
|
|
3
|
+
version = "0.19.7"
|
|
4
4
|
description = "Cross-language metadata standard: declare typed entities once, generate idiomatic drift-checked code across languages — Python port."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -110,6 +110,7 @@ from ..meta.core.relationship.relationship_constants import (
|
|
|
110
110
|
from ..meta.core.identity.identity_constants import (
|
|
111
111
|
IDENTITY_SUBTYPE_REFERENCE,
|
|
112
112
|
IDENTITY_REFERENCE_ATTR_REFERENCES,
|
|
113
|
+
IDENTITY_REFERENCE_ATTR_ENFORCE,
|
|
113
114
|
)
|
|
114
115
|
from ..shared.separators import PACKAGE_SEP
|
|
115
116
|
from ..meta.core.object.object_constants import (
|
|
@@ -123,21 +124,23 @@ from ..meta.core.index.index_constants import INDEX_ATTR_FIELDS, INDEX_SUBTYPE_L
|
|
|
123
124
|
from ..source import resolved_source
|
|
124
125
|
from ..naming_refs import did_you_mean_hint, resolve_object_ref
|
|
125
126
|
|
|
126
|
-
# A subtype-specific template attr is valid ONLY on the subtype it is registered
|
|
127
|
+
# A subtype-specific template attr is valid ONLY on the subtype(s) it is registered
|
|
127
128
|
# for. The metamodel registers these per-subtype (see the core_types template block),
|
|
128
129
|
# but the lenient loader does not reject a misplaced one — _validate_templates does.
|
|
129
130
|
# Mirrors the per-subtype TEMPLATE_ATTRS_MAP split across the other ports.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
tc.
|
|
134
|
-
tc.
|
|
135
|
-
tc.
|
|
136
|
-
tc.
|
|
137
|
-
tc.
|
|
138
|
-
tc.
|
|
139
|
-
tc.
|
|
140
|
-
tc.
|
|
131
|
+
# #237: @maxTokens is registered on BOTH prompt AND toolcall (a vendor-agnostic token
|
|
132
|
+
# budget), so the value is a SET of allowed subtypes, not a single one.
|
|
133
|
+
_TEMPLATE_SUBTYPE_ONLY_ATTRS: dict[str, frozenset[str]] = {
|
|
134
|
+
tc.TEMPLATE_ATTR_MAX_TOKENS: frozenset({tc.TEMPLATE_SUBTYPE_PROMPT, tc.TEMPLATE_SUBTYPE_TOOLCALL}),
|
|
135
|
+
tc.TEMPLATE_ATTR_REQUIRED_SLOTS: frozenset({tc.TEMPLATE_SUBTYPE_PROMPT}),
|
|
136
|
+
tc.TEMPLATE_ATTR_MODEL: frozenset({tc.TEMPLATE_SUBTYPE_PROMPT}),
|
|
137
|
+
tc.TEMPLATE_ATTR_RESPONSE_REF: frozenset({tc.TEMPLATE_SUBTYPE_PROMPT}),
|
|
138
|
+
tc.TEMPLATE_ATTR_PROMPT_STYLE: frozenset({tc.TEMPLATE_SUBTYPE_OUTPUT}),
|
|
139
|
+
tc.TEMPLATE_ATTR_KIND: frozenset({tc.TEMPLATE_SUBTYPE_OUTPUT}),
|
|
140
|
+
tc.TEMPLATE_ATTR_SUBJECT_REF: frozenset({tc.TEMPLATE_SUBTYPE_OUTPUT}),
|
|
141
|
+
tc.TEMPLATE_ATTR_HTML_BODY_REF: frozenset({tc.TEMPLATE_SUBTYPE_OUTPUT}),
|
|
142
|
+
tc.TEMPLATE_ATTR_TEXT_BODY_REF: frozenset({tc.TEMPLATE_SUBTYPE_OUTPUT}),
|
|
143
|
+
tc.TEMPLATE_ATTR_TOOL_NAME: frozenset({tc.TEMPLATE_SUBTYPE_TOOLCALL}),
|
|
141
144
|
}
|
|
142
145
|
|
|
143
146
|
# ---------------------------------------------------------------------------
|
|
@@ -436,18 +439,22 @@ def _validate_attr_schema(
|
|
|
436
439
|
|
|
437
440
|
# --- Check 1: required attrs must be present (uses node.attrs() = effective,
|
|
438
441
|
# so an inherited attr from the super chain satisfies the requirement) ---
|
|
439
|
-
|
|
440
|
-
for
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
442
|
+
# #236: an ABSTRACT node is a template, not instantiated — it may omit a required
|
|
443
|
+
# attr for concrete subtypes / `extends` to supply. Enforcement stays at the
|
|
444
|
+
# concrete level (a concrete's resolving attrs() must satisfy it). ADR-0039.
|
|
445
|
+
if not node.is_abstract:
|
|
446
|
+
present_attrs = node.attrs()
|
|
447
|
+
for schema in schemas:
|
|
448
|
+
if not schema.required:
|
|
449
|
+
continue
|
|
450
|
+
if schema.name not in present_attrs:
|
|
451
|
+
errors.append(
|
|
452
|
+
MetaError(
|
|
453
|
+
f"{_node_label(node)} is missing required attribute '@{schema.name}'",
|
|
454
|
+
ErrorCode.ERR_MISSING_REQUIRED_ATTR,
|
|
455
|
+
envelope=node.source,
|
|
456
|
+
)
|
|
449
457
|
)
|
|
450
|
-
)
|
|
451
458
|
|
|
452
459
|
# --- Checks 2 + 3: own attrs only (inherited attrs were already checked on
|
|
453
460
|
# the node that declared them; re-checking would double-report) ---
|
|
@@ -2290,6 +2297,20 @@ def _validate_relationships(root: MetaData, errors: list[MetaError]) -> None:
|
|
|
2290
2297
|
),
|
|
2291
2298
|
))
|
|
2292
2299
|
continue
|
|
2300
|
+
# A junction is a physical join table — it MUST be an object.entity.
|
|
2301
|
+
# ADR-0046 lets a value carry navigation-only references, so value-purity
|
|
2302
|
+
# no longer implicitly guarantees a two-reference junction is an entity;
|
|
2303
|
+
# assert it here. (A value/projection has no table to join through.)
|
|
2304
|
+
if junction.sub_type != OBJECT_SUBTYPE_ENTITY:
|
|
2305
|
+
errors.append(MetaError(
|
|
2306
|
+
f'relationship "{obj.name}.{rel.name}" '
|
|
2307
|
+
f'@{RELATIONSHIP_ATTR_THROUGH} "{through}" resolves to '
|
|
2308
|
+
f"{junction.type}.{junction.sub_type}, not an entity — a junction is a "
|
|
2309
|
+
f"persisted join table and must be object.entity.",
|
|
2310
|
+
ErrorCode.ERR_INVALID_RELATIONSHIP,
|
|
2311
|
+
envelope=rel.source,
|
|
2312
|
+
))
|
|
2313
|
+
continue
|
|
2293
2314
|
ref_count = _count_junction_references(junction)
|
|
2294
2315
|
if ref_count != 2:
|
|
2295
2316
|
errors.append(MetaError(
|
|
@@ -2619,12 +2640,31 @@ def _validate_max_occurs(
|
|
|
2619
2640
|
)
|
|
2620
2641
|
|
|
2621
2642
|
|
|
2622
|
-
# FR-024 value purity (ADR-0028): a value object
|
|
2623
|
-
#
|
|
2624
|
-
#
|
|
2643
|
+
# FR-024 value purity (ADR-0028): a value object owns NO identity and NO source.
|
|
2644
|
+
# ADR-0046 admits ONE exception: a navigation-only identity.reference with explicit
|
|
2645
|
+
# @enforce: false — an outbound pointer to an entity (a DTO/message referencing X by
|
|
2646
|
+
# id) is not persistence. Its target still resolves (dangling → ERR_INVALID_REFERENCE
|
|
2647
|
+
# via the registry-derived pass) and codegen emits no FK/DDL. The value's OWN identity
|
|
2648
|
+
# (primary/secondary) and any enforced reference (a physical FK it has no table to
|
|
2649
|
+
# hold) stay banned. Mirrors TS subtype-rules.ts validateValuePurity.
|
|
2625
2650
|
def _validate_value_purity(node: MetaObject, errors: list[MetaError]) -> None:
|
|
2626
2651
|
for child in node.children():
|
|
2627
2652
|
if child.type == TYPE_IDENTITY:
|
|
2653
|
+
if child.sub_type == IDENTITY_SUBTYPE_REFERENCE:
|
|
2654
|
+
# ADR-0046: navigation-only reference is the sanctioned exception.
|
|
2655
|
+
if child.get_meta_attr(IDENTITY_REFERENCE_ATTR_ENFORCE) is False:
|
|
2656
|
+
continue
|
|
2657
|
+
errors.append(
|
|
2658
|
+
MetaError(
|
|
2659
|
+
f"value object '{node.fqn()}' has an enforced reference "
|
|
2660
|
+
f"({TYPE_IDENTITY}.{child.sub_type} '{child.name}') — a value is not "
|
|
2661
|
+
f"persisted and has no table to hold a physical FK; declare a "
|
|
2662
|
+
f"navigation-only reference with @enforce: false (FR-024, ADR-0028, ADR-0046)",
|
|
2663
|
+
ErrorCode.ERR_SUBTYPE_RULE_VIOLATION,
|
|
2664
|
+
envelope=child.source,
|
|
2665
|
+
)
|
|
2666
|
+
)
|
|
2667
|
+
continue
|
|
2628
2668
|
errors.append(
|
|
2629
2669
|
MetaError(
|
|
2630
2670
|
f"value object '{node.fqn()}' must not have an identity "
|
|
@@ -2968,13 +3008,14 @@ def _validate_templates(root: MetaData, errors: list[MetaError]) -> None:
|
|
|
2968
3008
|
# e.g. @maxTokens (prompt-only) on a template.output, or @promptStyle
|
|
2969
3009
|
# (output-only) on a template.prompt. ADR-0039: resolving — a subtype-only
|
|
2970
3010
|
# attr may be inherited via extends, so read the effective value.
|
|
2971
|
-
for attr_name,
|
|
2972
|
-
if tpl.get_meta_attr(attr_name) is not None and tpl.sub_type
|
|
3011
|
+
for attr_name, allowed_subs in _TEMPLATE_SUBTYPE_ONLY_ATTRS.items():
|
|
3012
|
+
if tpl.get_meta_attr(attr_name) is not None and tpl.sub_type not in allowed_subs:
|
|
3013
|
+
valid_on = " / ".join(f"template.{s}" for s in sorted(allowed_subs))
|
|
2973
3014
|
errors.append(MetaError(
|
|
2974
3015
|
code=ErrorCode.ERR_INVALID_TEMPLATE,
|
|
2975
3016
|
message=(
|
|
2976
3017
|
f'template.{tpl.sub_type} "{tpl.name}" carries @{attr_name}, '
|
|
2977
|
-
f"which is only valid on
|
|
3018
|
+
f"which is only valid on {valid_on}"
|
|
2978
3019
|
),
|
|
2979
3020
|
envelope=tpl.source,
|
|
2980
3021
|
))
|
|
@@ -69,7 +69,8 @@
|
|
|
69
69
|
{ "type": "attr", "subType": "string", "name": "toolName", "min": 1, "max": 1, "description": "Wire tool name surfaced to the LLM (vendor-specific format)." },
|
|
70
70
|
{ "type": "attr", "subType": "string", "name": "payloadRef", "min": 1, "max": 1, "description": "Output value-object the tool produces (resolved against the metamodel)." },
|
|
71
71
|
{ "type": "attr", "subType": "string", "name": "owner", "min": 0, "max": 1, "description": "Governance: the owner of this toolcall." },
|
|
72
|
-
{ "type": "attr", "subType": "string", "name": "since", "min": 0, "max": 1, "description": "Governance: the version this toolcall was introduced in." }
|
|
72
|
+
{ "type": "attr", "subType": "string", "name": "since", "min": 0, "max": 1, "description": "Governance: the version this toolcall was introduced in." },
|
|
73
|
+
{ "type": "attr", "subType": "int", "name": "maxTokens", "min": 0, "max": 1, "description": "Per-call token budget for the tool-call's structured response (LLM-specific). Vendor-agnostic config; peer of @maxTokens on template.prompt (#237)." }
|
|
73
74
|
]
|
|
74
75
|
}
|
|
75
76
|
]
|
|
@@ -51,6 +51,7 @@ def test_template_toolcall_attr_schema_does_not_inherit_generic_attrs() -> None:
|
|
|
51
51
|
tc.TEMPLATE_ATTR_PAYLOAD_REF,
|
|
52
52
|
tc.TEMPLATE_ATTR_OWNER,
|
|
53
53
|
tc.TEMPLATE_ATTR_SINCE,
|
|
54
|
+
tc.TEMPLATE_ATTR_MAX_TOKENS, # #237 — vendor-agnostic per-call token budget
|
|
54
55
|
}
|
|
55
56
|
assert tc.TEMPLATE_ATTR_TEXT_REF not in attrs, "toolcall must NOT carry @textRef"
|
|
56
57
|
assert tc.TEMPLATE_ATTR_FORMAT not in attrs, "toolcall must NOT carry @format"
|
|
@@ -59,6 +60,7 @@ def test_template_toolcall_attr_schema_does_not_inherit_generic_attrs() -> None:
|
|
|
59
60
|
assert attrs[tc.TEMPLATE_ATTR_PAYLOAD_REF].required is True
|
|
60
61
|
assert attrs[tc.TEMPLATE_ATTR_OWNER].required is False
|
|
61
62
|
assert attrs[tc.TEMPLATE_ATTR_SINCE].required is False
|
|
63
|
+
assert attrs[tc.TEMPLATE_ATTR_MAX_TOKENS].required is False
|
|
62
64
|
|
|
63
65
|
|
|
64
66
|
# ---------------------------------------------------------------------------
|
|
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
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/extract_delegate_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/entity_model.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/extractor_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/fr019_shared_enum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/payload_vo_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/router_generator.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/generators/template_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/output_format_spec_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/template_codegen/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/template_codegen/output_pattern.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/template_codegen/template_data.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/codegen/template_codegen/template_spec.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/sources/directory_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/sources/meta_data_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/validate_source_parameter_ref.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/loader/validate_source_physical_names.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/field/field_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/identity/identity_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/identity/meta_identity.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/index/index_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/meta_object_aware.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/object_class_registry.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/object_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/object/object_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/relationship/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/core/validator/validator_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/db/db_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/db/db_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/origin/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/origin/meta_origin.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/source/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/persistence/source/meta_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/layout/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/layout/meta_layout.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/ui/ui_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/view/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/view/meta_view.py
RENAMED
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/presentation/view/view_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/meta/template/template_constants.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/json_forgiving_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/extract/xml_forgiving_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.5 → metaobjects-0.19.7}/src/metaobjects/render/prompt/output_format_renderer.py
RENAMED
|
File without changes
|