@metaobjectsdev/metadata 0.9.0-rc.1 → 0.10.0
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.
- package/dist/attr-schema-validate.d.ts +1 -1
- package/dist/attr-schema-validate.d.ts.map +1 -1
- package/dist/attr-schema-validate.js +84 -7
- package/dist/attr-schema-validate.js.map +1 -1
- package/dist/constants.d.ts +208 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +419 -0
- package/dist/constants.js.map +1 -0
- package/dist/constraint-merge.d.ts +18 -0
- package/dist/constraint-merge.d.ts.map +1 -0
- package/dist/constraint-merge.js +0 -0
- package/dist/constraint-merge.js.map +1 -0
- package/dist/constraint-validate.d.ts +6 -0
- package/dist/constraint-validate.d.ts.map +1 -0
- package/dist/constraint-validate.js +274 -0
- package/dist/constraint-validate.js.map +1 -0
- package/dist/core/attr/attr-constants.d.ts +13 -3
- package/dist/core/attr/attr-constants.d.ts.map +1 -1
- package/dist/core/attr/attr-constants.js +11 -2
- package/dist/core/attr/attr-constants.js.map +1 -1
- package/dist/core/attr/attr-definition.embedded.d.ts +3 -0
- package/dist/core/attr/attr-definition.embedded.d.ts.map +1 -0
- package/dist/core/attr/attr-definition.embedded.js +60 -0
- package/dist/core/attr/attr-definition.embedded.js.map +1 -0
- package/dist/core/documentation/doc-constants.d.ts +3 -2
- package/dist/core/documentation/doc-constants.d.ts.map +1 -1
- package/dist/core/documentation/doc-constants.js +3 -1
- package/dist/core/documentation/doc-constants.js.map +1 -1
- package/dist/core/documentation/doc-provider.d.ts.map +1 -1
- package/dist/core/documentation/doc-provider.js +6 -2
- package/dist/core/documentation/doc-provider.js.map +1 -1
- package/dist/core/documentation/doc-schema.d.ts +1 -1
- package/dist/core/documentation/doc-schema.d.ts.map +1 -1
- package/dist/core/documentation/doc-schema.js +13 -5
- package/dist/core/documentation/doc-schema.js.map +1 -1
- package/dist/core/documentation/documentation-definition.embedded.d.ts +3 -0
- package/dist/core/documentation/documentation-definition.embedded.d.ts.map +1 -0
- package/dist/core/documentation/documentation-definition.embedded.js +79 -0
- package/dist/core/documentation/documentation-definition.embedded.js.map +1 -0
- package/dist/core/field/field-constants.d.ts +7 -4
- package/dist/core/field/field-constants.d.ts.map +1 -1
- package/dist/core/field/field-constants.js +7 -7
- package/dist/core/field/field-constants.js.map +1 -1
- package/dist/core/field/field-definition.embedded.d.ts +3 -0
- package/dist/core/field/field-definition.embedded.d.ts.map +1 -0
- package/dist/core/field/field-definition.embedded.js +236 -0
- package/dist/core/field/field-definition.embedded.js.map +1 -0
- package/dist/core/field/field-schema.d.ts +0 -16
- package/dist/core/field/field-schema.d.ts.map +1 -1
- package/dist/core/field/field-schema.js +10 -158
- package/dist/core/field/field-schema.js.map +1 -1
- package/dist/core/field/meta-field.d.ts.map +1 -1
- package/dist/core/field/meta-field.js +7 -5
- package/dist/core/field/meta-field.js.map +1 -1
- package/dist/core/file-meta-data-loader.d.ts +18 -0
- package/dist/core/file-meta-data-loader.d.ts.map +1 -0
- package/dist/core/file-meta-data-loader.js +81 -0
- package/dist/core/file-meta-data-loader.js.map +1 -0
- package/dist/core/file-source.d.ts +12 -0
- package/dist/core/file-source.d.ts.map +1 -0
- package/dist/core/file-source.js +46 -0
- package/dist/core/file-source.js.map +1 -0
- package/dist/core/identity/identity-definition.embedded.d.ts +3 -0
- package/dist/core/identity/identity-definition.embedded.d.ts.map +1 -0
- package/dist/core/identity/identity-definition.embedded.js +91 -0
- package/dist/core/identity/identity-definition.embedded.js.map +1 -0
- package/dist/core/identity/identity-schema.d.ts.map +1 -1
- package/dist/core/identity/identity-schema.js +3 -2
- package/dist/core/identity/identity-schema.js.map +1 -1
- package/dist/core/identity/validate-identity-passthrough.d.ts +42 -0
- package/dist/core/identity/validate-identity-passthrough.d.ts.map +1 -0
- package/dist/core/identity/validate-identity-passthrough.js +158 -0
- package/dist/core/identity/validate-identity-passthrough.js.map +1 -0
- package/dist/core/object/object-constants.d.ts +2 -1
- package/dist/core/object/object-constants.d.ts.map +1 -1
- package/dist/core/object/object-constants.js +3 -0
- package/dist/core/object/object-constants.js.map +1 -1
- package/dist/core/object/object-definition.embedded.d.ts +3 -0
- package/dist/core/object/object-definition.embedded.d.ts.map +1 -0
- package/dist/core/object/object-definition.embedded.js +110 -0
- package/dist/core/object/object-definition.embedded.js.map +1 -0
- package/dist/core/object/validate-discriminator.d.ts.map +1 -1
- package/dist/core/object/validate-discriminator.js +1 -3
- package/dist/core/object/validate-discriminator.js.map +1 -1
- package/dist/core/query/query-constants.d.ts.map +1 -1
- package/dist/core/query/query-constants.js +5 -3
- package/dist/core/query/query-constants.js.map +1 -1
- package/dist/core/relationship/derive-m2m-fields.d.ts +26 -0
- package/dist/core/relationship/derive-m2m-fields.d.ts.map +1 -0
- package/dist/core/relationship/derive-m2m-fields.js +102 -0
- package/dist/core/relationship/derive-m2m-fields.js.map +1 -0
- package/dist/core/relationship/meta-relationship.d.ts +6 -4
- package/dist/core/relationship/meta-relationship.d.ts.map +1 -1
- package/dist/core/relationship/meta-relationship.js +12 -8
- package/dist/core/relationship/meta-relationship.js.map +1 -1
- package/dist/core/relationship/relationship-constants.d.ts +6 -2
- package/dist/core/relationship/relationship-constants.d.ts.map +1 -1
- package/dist/core/relationship/relationship-constants.js +6 -2
- package/dist/core/relationship/relationship-constants.js.map +1 -1
- package/dist/core/relationship/relationship-definition.embedded.d.ts +3 -0
- package/dist/core/relationship/relationship-definition.embedded.d.ts.map +1 -0
- package/dist/core/relationship/relationship-definition.embedded.js +310 -0
- package/dist/core/relationship/relationship-definition.embedded.js.map +1 -0
- package/dist/core/relationship/relationship-schema.d.ts.map +1 -1
- package/dist/core/relationship/relationship-schema.js +13 -7
- package/dist/core/relationship/relationship-schema.js.map +1 -1
- package/dist/core/validator/validator-definition.embedded.d.ts +3 -0
- package/dist/core/validator/validator-definition.embedded.d.ts.map +1 -0
- package/dist/core/validator/validator-definition.embedded.js +134 -0
- package/dist/core/validator/validator-definition.embedded.js.map +1 -0
- package/dist/core/yaml-desugar.d.ts.map +1 -1
- package/dist/core/yaml-desugar.js +88 -10
- package/dist/core/yaml-desugar.js.map +1 -1
- package/dist/core-attr-schemas.d.ts +22 -0
- package/dist/core-attr-schemas.d.ts.map +1 -0
- package/dist/core-attr-schemas.js +324 -0
- package/dist/core-attr-schemas.js.map +1 -0
- package/dist/core-types.d.ts +5 -2
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +261 -115
- package/dist/core-types.js.map +1 -1
- package/dist/db/db-attr-schemas.d.ts +8 -0
- package/dist/db/db-attr-schemas.d.ts.map +1 -0
- package/dist/db/db-attr-schemas.js +26 -0
- package/dist/db/db-attr-schemas.js.map +1 -0
- package/dist/db/db-provider.d.ts +3 -0
- package/dist/db/db-provider.d.ts.map +1 -0
- package/dist/db/db-provider.js +28 -0
- package/dist/db/db-provider.js.map +1 -0
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +78 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +17 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -1
- package/dist/index.js.map +1 -1
- package/dist/library/embedded-library.generated.d.ts +2 -0
- package/dist/library/embedded-library.generated.d.ts.map +1 -0
- package/dist/library/embedded-library.generated.js +11 -0
- package/dist/library/embedded-library.generated.js.map +1 -0
- package/dist/library/library-sources.d.ts +12 -0
- package/dist/library/library-sources.d.ts.map +1 -0
- package/dist/library/library-sources.js +88 -0
- package/dist/library/library-sources.js.map +1 -0
- package/dist/loader/meta-data-loader.d.ts +10 -2
- package/dist/loader/meta-data-loader.d.ts.map +1 -1
- package/dist/loader/meta-data-loader.js +47 -6
- package/dist/loader/meta-data-loader.js.map +1 -1
- package/dist/loader/shortcuts.d.ts +2 -5
- package/dist/loader/shortcuts.d.ts.map +1 -1
- package/dist/loader/shortcuts.js.map +1 -1
- package/dist/loader/validation-passes.d.ts +3 -0
- package/dist/loader/validation-passes.d.ts.map +1 -1
- package/dist/loader/validation-passes.js +513 -33
- package/dist/loader/validation-passes.js.map +1 -1
- package/dist/meta/find-reference.d.ts +22 -0
- package/dist/meta/find-reference.d.ts.map +1 -0
- package/dist/meta/find-reference.js +29 -0
- package/dist/meta/find-reference.js.map +1 -0
- package/dist/meta/meta-attr.d.ts +8 -0
- package/dist/meta/meta-attr.d.ts.map +1 -0
- package/dist/meta/meta-attr.js +17 -0
- package/dist/meta/meta-attr.js.map +1 -0
- package/dist/meta/meta-data.d.ts +107 -0
- package/dist/meta/meta-data.d.ts.map +1 -0
- package/dist/meta/meta-data.js +302 -0
- package/dist/meta/meta-data.js.map +1 -0
- package/dist/meta/meta-field.d.ts +48 -0
- package/dist/meta/meta-field.d.ts.map +1 -0
- package/dist/meta/meta-field.js +94 -0
- package/dist/meta/meta-field.js.map +1 -0
- package/dist/meta/meta-identity.d.ts +71 -0
- package/dist/meta/meta-identity.d.ts.map +1 -0
- package/dist/meta/meta-identity.js +129 -0
- package/dist/meta/meta-identity.js.map +1 -0
- package/dist/meta/meta-layout.d.ts +23 -0
- package/dist/meta/meta-layout.d.ts.map +1 -0
- package/dist/meta/meta-layout.js +45 -0
- package/dist/meta/meta-layout.js.map +1 -0
- package/dist/meta/meta-object.d.ts +40 -0
- package/dist/meta/meta-object.d.ts.map +1 -0
- package/dist/meta/meta-object.js +81 -0
- package/dist/meta/meta-object.js.map +1 -0
- package/dist/meta/meta-origin.d.ts +32 -0
- package/dist/meta/meta-origin.d.ts.map +1 -0
- package/dist/meta/meta-origin.js +55 -0
- package/dist/meta/meta-origin.js.map +1 -0
- package/dist/meta/meta-relationship.d.ts +11 -0
- package/dist/meta/meta-relationship.d.ts.map +1 -0
- package/dist/meta/meta-relationship.js +27 -0
- package/dist/meta/meta-relationship.js.map +1 -0
- package/dist/meta/meta-root.d.ts +12 -0
- package/dist/meta/meta-root.d.ts.map +1 -0
- package/dist/meta/meta-root.js +24 -0
- package/dist/meta/meta-root.js.map +1 -0
- package/dist/meta/meta-source.d.ts +18 -0
- package/dist/meta/meta-source.d.ts.map +1 -0
- package/dist/meta/meta-source.js +31 -0
- package/dist/meta/meta-source.js.map +1 -0
- package/dist/meta/meta-validator.d.ts +29 -0
- package/dist/meta/meta-validator.d.ts.map +1 -0
- package/dist/meta/meta-validator.js +49 -0
- package/dist/meta/meta-validator.js.map +1 -0
- package/dist/meta/meta-view.d.ts +4 -0
- package/dist/meta/meta-view.d.ts.map +1 -0
- package/dist/meta/meta-view.js +8 -0
- package/dist/meta/meta-view.js.map +1 -0
- package/dist/metamodel-docs/index.d.ts +19 -0
- package/dist/metamodel-docs/index.d.ts.map +1 -0
- package/dist/metamodel-docs/index.js +37 -0
- package/dist/metamodel-docs/index.js.map +1 -0
- package/dist/metamodel-docs/provenance.d.ts +42 -0
- package/dist/metamodel-docs/provenance.d.ts.map +1 -0
- package/dist/metamodel-docs/provenance.js +148 -0
- package/dist/metamodel-docs/provenance.js.map +1 -0
- package/dist/metamodel-docs/provider-definitions.d.ts +8 -0
- package/dist/metamodel-docs/provider-definitions.d.ts.map +1 -0
- package/dist/metamodel-docs/provider-definitions.js +48 -0
- package/dist/metamodel-docs/provider-definitions.js.map +1 -0
- package/dist/metamodel-docs/render.d.ts +12 -0
- package/dist/metamodel-docs/render.d.ts.map +1 -0
- package/dist/metamodel-docs/render.js +252 -0
- package/dist/metamodel-docs/render.js.map +1 -0
- package/dist/naming-refs.d.ts +41 -0
- package/dist/naming-refs.d.ts.map +1 -0
- package/dist/naming-refs.js +144 -0
- package/dist/naming-refs.js.map +1 -0
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +10 -2
- package/dist/naming.js.map +1 -1
- package/dist/parser-core.d.ts.map +1 -1
- package/dist/parser-core.js +74 -8
- package/dist/parser-core.js.map +1 -1
- package/dist/persistence/db/db-attr-schemas.d.ts +8 -0
- package/dist/persistence/db/db-attr-schemas.d.ts.map +1 -0
- package/dist/persistence/db/db-attr-schemas.js +28 -0
- package/dist/persistence/db/db-attr-schemas.js.map +1 -0
- package/dist/persistence/db/db-definition.embedded.d.ts +3 -0
- package/dist/persistence/db/db-definition.embedded.d.ts.map +1 -0
- package/dist/persistence/db/db-definition.embedded.js +170 -0
- package/dist/persistence/db/db-definition.embedded.js.map +1 -0
- package/dist/persistence/db/db-provider.d.ts.map +1 -1
- package/dist/persistence/db/db-provider.js +13 -18
- package/dist/persistence/db/db-provider.js.map +1 -1
- package/dist/persistence/db/db-schema.d.ts +14 -0
- package/dist/persistence/db/db-schema.d.ts.map +1 -1
- package/dist/persistence/db/db-schema.js +27 -0
- package/dist/persistence/db/db-schema.js.map +1 -1
- package/dist/persistence/origin/origin-definition.embedded.d.ts +3 -0
- package/dist/persistence/origin/origin-definition.embedded.d.ts.map +1 -0
- package/dist/persistence/origin/origin-definition.embedded.js +88 -0
- package/dist/persistence/origin/origin-definition.embedded.js.map +1 -0
- package/dist/persistence/origin/origin-schema.d.ts.map +1 -1
- package/dist/persistence/origin/origin-schema.js +7 -3
- package/dist/persistence/origin/origin-schema.js.map +1 -1
- package/dist/persistence/source/source-definition.embedded.d.ts +3 -0
- package/dist/persistence/source/source-definition.embedded.d.ts.map +1 -0
- package/dist/persistence/source/source-definition.embedded.js +17 -0
- package/dist/persistence/source/source-definition.embedded.js.map +1 -0
- package/dist/persistence/source/validate-source-parameter-ref.d.ts.map +1 -1
- package/dist/persistence/source/validate-source-parameter-ref.js +7 -1
- package/dist/persistence/source/validate-source-parameter-ref.js.map +1 -1
- package/dist/persistence/source/validate-source-roles.d.ts.map +1 -1
- package/dist/persistence/source/validate-source-roles.js +16 -1
- package/dist/persistence/source/validate-source-roles.js.map +1 -1
- package/dist/presentation/layout/layout-definition.embedded.d.ts +3 -0
- package/dist/presentation/layout/layout-definition.embedded.d.ts.map +1 -0
- package/dist/presentation/layout/layout-definition.embedded.js +16 -0
- package/dist/presentation/layout/layout-definition.embedded.js.map +1 -0
- package/dist/presentation/layout/layout-schema.d.ts.map +1 -1
- package/dist/presentation/layout/layout-schema.js +3 -2
- package/dist/presentation/layout/layout-schema.js.map +1 -1
- package/dist/presentation/ui/ui-definition.embedded.d.ts +3 -0
- package/dist/presentation/ui/ui-definition.embedded.d.ts.map +1 -0
- package/dist/presentation/ui/ui-definition.embedded.js +114 -0
- package/dist/presentation/ui/ui-definition.embedded.js.map +1 -0
- package/dist/presentation/ui/ui-provider.d.ts +3 -0
- package/dist/presentation/ui/ui-provider.d.ts.map +1 -0
- package/dist/presentation/ui/ui-provider.js +21 -0
- package/dist/presentation/ui/ui-provider.js.map +1 -0
- package/dist/presentation/ui/ui-schema.d.ts +10 -0
- package/dist/presentation/ui/ui-schema.d.ts.map +1 -0
- package/dist/presentation/ui/ui-schema.js +41 -0
- package/dist/presentation/ui/ui-schema.js.map +1 -0
- package/dist/presentation/view/view-definition.embedded.d.ts +3 -0
- package/dist/presentation/view/view-definition.embedded.d.ts.map +1 -0
- package/dist/presentation/view/view-definition.embedded.js +76 -0
- package/dist/presentation/view/view-definition.embedded.js.map +1 -0
- package/dist/provider-data.d.ts +169 -0
- package/dist/provider-data.d.ts.map +1 -0
- package/dist/provider-data.js +269 -0
- package/dist/provider-data.js.map +1 -0
- package/dist/provider.d.ts +3 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +15 -1
- package/dist/provider.js.map +1 -1
- package/dist/registry-coverage.d.ts +99 -0
- package/dist/registry-coverage.d.ts.map +1 -0
- package/dist/registry-coverage.js +294 -0
- package/dist/registry-coverage.js.map +1 -0
- package/dist/registry-manifest-exclusions.d.ts +62 -0
- package/dist/registry-manifest-exclusions.d.ts.map +1 -0
- package/dist/registry-manifest-exclusions.js +163 -0
- package/dist/registry-manifest-exclusions.js.map +1 -0
- package/dist/registry-manifest.d.ts +117 -0
- package/dist/registry-manifest.d.ts.map +1 -0
- package/dist/registry-manifest.js +242 -0
- package/dist/registry-manifest.js.map +1 -0
- package/dist/registry.d.ts +60 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +37 -1
- package/dist/registry.js.map +1 -1
- package/dist/shared/structural.d.ts +7 -0
- package/dist/shared/structural.d.ts.map +1 -1
- package/dist/shared/structural.js +7 -0
- package/dist/shared/structural.js.map +1 -1
- package/dist/subtype-rules.d.ts.map +1 -1
- package/dist/subtype-rules.js +97 -13
- package/dist/subtype-rules.js.map +1 -1
- package/dist/super-resolve.d.ts +49 -2
- package/dist/super-resolve.d.ts.map +1 -1
- package/dist/super-resolve.js +128 -43
- package/dist/super-resolve.js.map +1 -1
- package/dist/template/meta-template.d.ts +3 -2
- package/dist/template/meta-template.d.ts.map +1 -1
- package/dist/template/meta-template.js +3 -2
- package/dist/template/meta-template.js.map +1 -1
- package/dist/template/prompt-definition.embedded.d.ts +3 -0
- package/dist/template/prompt-definition.embedded.d.ts.map +1 -0
- package/dist/template/prompt-definition.embedded.js +368 -0
- package/dist/template/prompt-definition.embedded.js.map +1 -0
- package/dist/template/prompt-provider.d.ts +3 -0
- package/dist/template/prompt-provider.d.ts.map +1 -0
- package/dist/template/prompt-provider.js +25 -0
- package/dist/template/prompt-provider.js.map +1 -0
- package/dist/template/prompt-schema.d.ts +20 -0
- package/dist/template/prompt-schema.d.ts.map +1 -0
- package/dist/template/prompt-schema.js +70 -0
- package/dist/template/prompt-schema.js.map +1 -0
- package/dist/template/template-constants.d.ts +2 -0
- package/dist/template/template-constants.d.ts.map +1 -1
- package/dist/template/template-constants.js +7 -0
- package/dist/template/template-constants.js.map +1 -1
- package/dist/template/template-definition.embedded.d.ts +3 -0
- package/dist/template/template-definition.embedded.d.ts.map +1 -0
- package/dist/template/template-definition.embedded.js +30 -0
- package/dist/template/template-definition.embedded.js.map +1 -0
- package/dist/template/template-schema.d.ts.map +1 -1
- package/dist/template/template-schema.js +12 -4
- package/dist/template/template-schema.js.map +1 -1
- package/package.json +33 -22
- package/src/attr-schema-validate.ts +96 -4
- package/src/constraint-merge.ts +0 -0
- package/src/constraint-validate.ts +363 -0
- package/src/core/attr/attr-constants.ts +15 -3
- package/src/core/attr/attr-definition.embedded.ts +67 -0
- package/src/core/documentation/doc-constants.ts +3 -1
- package/src/core/documentation/doc-provider.ts +6 -2
- package/src/core/documentation/documentation-definition.embedded.ts +86 -0
- package/src/core/field/field-constants.ts +8 -7
- package/src/core/field/field-definition.embedded.ts +243 -0
- package/src/core/field/meta-field.ts +6 -7
- package/src/core/identity/identity-definition.embedded.ts +98 -0
- package/src/core/identity/validate-identity-passthrough.ts +194 -0
- package/src/core/object/object-constants.ts +3 -0
- package/src/core/object/object-definition.embedded.ts +117 -0
- package/src/core/object/validate-discriminator.ts +0 -4
- package/src/core/query/query-constants.ts +5 -3
- package/src/core/relationship/derive-m2m-fields.ts +145 -0
- package/src/core/relationship/meta-relationship.ts +15 -9
- package/src/core/relationship/relationship-constants.ts +6 -2
- package/src/core/relationship/relationship-definition.embedded.ts +317 -0
- package/src/core/validator/validator-definition.embedded.ts +141 -0
- package/src/core/yaml-desugar.ts +96 -7
- package/src/core-types.ts +289 -150
- package/src/errors.ts +78 -0
- package/src/index.ts +47 -2
- package/src/library/embedded-library.generated.ts +10 -0
- package/src/library/library-sources.ts +97 -0
- package/src/loader/meta-data-loader.ts +66 -7
- package/src/loader/shortcuts.ts +2 -2
- package/src/loader/validation-passes.ts +679 -33
- package/src/metamodel-docs/index.ts +41 -0
- package/src/metamodel-docs/provenance.ts +187 -0
- package/src/metamodel-docs/provider-definitions.ts +50 -0
- package/src/metamodel-docs/render.ts +309 -0
- package/src/naming-refs.ts +162 -0
- package/src/naming.ts +10 -2
- package/src/parser-core.ts +86 -8
- package/src/persistence/db/db-definition.embedded.ts +177 -0
- package/src/persistence/db/db-provider.ts +13 -18
- package/src/persistence/origin/origin-definition.embedded.ts +95 -0
- package/src/persistence/source/source-definition.embedded.ts +24 -0
- package/src/persistence/source/validate-source-parameter-ref.ts +7 -1
- package/src/persistence/source/validate-source-roles.ts +22 -1
- package/src/presentation/layout/layout-definition.embedded.ts +23 -0
- package/src/presentation/ui/ui-definition.embedded.ts +121 -0
- package/src/presentation/ui/ui-provider.ts +25 -0
- package/src/presentation/view/view-definition.embedded.ts +83 -0
- package/src/provider-data.ts +446 -0
- package/src/provider.ts +18 -0
- package/src/registry-coverage.ts +430 -0
- package/src/registry-manifest-exclusions.ts +176 -0
- package/src/registry-manifest.ts +334 -0
- package/src/registry.ts +90 -3
- package/src/shared/structural.ts +8 -0
- package/src/subtype-rules.ts +135 -18
- package/src/super-resolve.ts +153 -43
- package/src/template/meta-template.ts +3 -2
- package/src/template/prompt-definition.embedded.ts +375 -0
- package/src/template/prompt-provider.ts +29 -0
- package/src/template/template-constants.ts +8 -0
- package/src/template/template-definition.embedded.ts +37 -0
- package/src/core/documentation/doc-schema.ts +0 -64
- package/src/core/field/field-schema.ts +0 -228
- package/src/core/identity/identity-schema.ts +0 -80
- package/src/core/object/object-schema.ts +0 -35
- package/src/core/relationship/relationship-schema.ts +0 -67
- package/src/core/validator/validator-schema.ts +0 -50
- package/src/persistence/db/db-schema.ts +0 -50
- package/src/persistence/origin/origin-schema.ts +0 -80
- package/src/persistence/source/source-schema.ts +0 -129
- package/src/presentation/layout/layout-schema.ts +0 -62
- package/src/presentation/view/view-schema.ts +0 -21
- package/src/template/template-schema.ts +0 -211
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
// AUTO-GENERATED by scripts/generate-embedded-metamodel.ts — DO NOT EDIT.
|
|
2
|
+
// Canonical source: repo-root spec/metamodel/prompt.json
|
|
3
|
+
// Regenerate: bun run scripts/generate-embedded-metamodel.ts
|
|
4
|
+
//
|
|
5
|
+
// Embeds the canonical FR-033 ProviderDefinition so the provider can register
|
|
6
|
+
// itself wherever the on-disk spec/ tree is unavailable (bundled builds).
|
|
7
|
+
import type { ProviderDefinition } from "../provider-data.js";
|
|
8
|
+
|
|
9
|
+
export const PROMPT_DEFINITION: ProviderDefinition = {
|
|
10
|
+
"provider": "metaobjects-prompt",
|
|
11
|
+
"extends": [
|
|
12
|
+
{
|
|
13
|
+
"type": "field",
|
|
14
|
+
"subType": "*",
|
|
15
|
+
"children": [
|
|
16
|
+
{
|
|
17
|
+
"type": "attr",
|
|
18
|
+
"subType": "boolean",
|
|
19
|
+
"name": "xmlText",
|
|
20
|
+
"min": 0,
|
|
21
|
+
"max": 1,
|
|
22
|
+
"description": "When true, this field receives its element's XML TEXT CONTENT during tolerant extract (JAXB @XmlValue / Jackson @JacksonXmlText / .NET [XmlText]) instead of a same-named child. No effect for @format: json."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "attr",
|
|
26
|
+
"subType": "string",
|
|
27
|
+
"name": "example",
|
|
28
|
+
"min": 0,
|
|
29
|
+
"max": 1,
|
|
30
|
+
"description": "FR-010: an example value for this field, shown in the generated output-format prompt fragment."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "attr",
|
|
34
|
+
"subType": "string",
|
|
35
|
+
"name": "instruction",
|
|
36
|
+
"min": 0,
|
|
37
|
+
"max": 1,
|
|
38
|
+
"description": "FR-010: a short instruction for this field, shown in the generated output-format prompt fragment."
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "field",
|
|
44
|
+
"subType": "enum",
|
|
45
|
+
"children": [
|
|
46
|
+
{
|
|
47
|
+
"type": "attr",
|
|
48
|
+
"subType": "properties",
|
|
49
|
+
"name": "enumAlias",
|
|
50
|
+
"min": 0,
|
|
51
|
+
"max": 1,
|
|
52
|
+
"description": "Map of alternate/off-vocabulary tokens to canonical enum members; feeds the FR-010 tolerant extract alias-fold."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"type": "attr",
|
|
56
|
+
"subType": "properties",
|
|
57
|
+
"name": "enumDoc",
|
|
58
|
+
"min": 0,
|
|
59
|
+
"max": 1,
|
|
60
|
+
"description": "Map of enum member to a human-readable description; shown per-member in the FR-010 'guide'-style prompt fragment."
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"type": "attr",
|
|
64
|
+
"subType": "string",
|
|
65
|
+
"name": "coerceDefault",
|
|
66
|
+
"min": 0,
|
|
67
|
+
"max": 1,
|
|
68
|
+
"description": "Fallback enum member used by tolerant extract when a present value cannot be coerced; must be one of the field's @values."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"type": "attr",
|
|
72
|
+
"subType": "string",
|
|
73
|
+
"name": "normalize",
|
|
74
|
+
"min": 0,
|
|
75
|
+
"max": 1,
|
|
76
|
+
"default": "strip",
|
|
77
|
+
"allowedValues": [
|
|
78
|
+
"none",
|
|
79
|
+
"collapse",
|
|
80
|
+
"strip"
|
|
81
|
+
],
|
|
82
|
+
"description": "ASCII normalization mode for tolerant enum extract (none|collapse|strip, default strip). On field.enum it is per-field; on object.value it is the default for the object's enum fields."
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"type": "object",
|
|
88
|
+
"subType": "value",
|
|
89
|
+
"children": [
|
|
90
|
+
{
|
|
91
|
+
"type": "attr",
|
|
92
|
+
"subType": "string",
|
|
93
|
+
"name": "normalize",
|
|
94
|
+
"min": 0,
|
|
95
|
+
"max": 1,
|
|
96
|
+
"default": "strip",
|
|
97
|
+
"allowedValues": [
|
|
98
|
+
"none",
|
|
99
|
+
"collapse",
|
|
100
|
+
"strip"
|
|
101
|
+
],
|
|
102
|
+
"description": "ASCII normalization mode for tolerant enum extract (none|collapse|strip, default strip). On field.enum it is per-field; on object.value it is the default for the object's enum fields."
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"type": "template",
|
|
108
|
+
"subType": "prompt",
|
|
109
|
+
"children": [
|
|
110
|
+
{
|
|
111
|
+
"type": "attr",
|
|
112
|
+
"subType": "string",
|
|
113
|
+
"name": "payloadRef",
|
|
114
|
+
"min": 1,
|
|
115
|
+
"max": 1,
|
|
116
|
+
"description": "Reference to the payload (a view-object / projection) this template renders against."
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"type": "attr",
|
|
120
|
+
"subType": "string",
|
|
121
|
+
"name": "textRef",
|
|
122
|
+
"min": 0,
|
|
123
|
+
"max": 1,
|
|
124
|
+
"description": "2-layer logical reference (group/source) to the body text, resolved by a provider at render time."
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"type": "attr",
|
|
128
|
+
"subType": "string",
|
|
129
|
+
"name": "format",
|
|
130
|
+
"min": 0,
|
|
131
|
+
"max": 1,
|
|
132
|
+
"default": "text",
|
|
133
|
+
"allowedValues": [
|
|
134
|
+
"text",
|
|
135
|
+
"html",
|
|
136
|
+
"xml",
|
|
137
|
+
"csv",
|
|
138
|
+
"json",
|
|
139
|
+
"markdown",
|
|
140
|
+
"spreadsheet"
|
|
141
|
+
],
|
|
142
|
+
"description": "Output format; drives the render engine's escaping/whitespace behavior."
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"type": "attr",
|
|
146
|
+
"subType": "int",
|
|
147
|
+
"name": "maxChars",
|
|
148
|
+
"min": 0,
|
|
149
|
+
"max": 1,
|
|
150
|
+
"description": "Size budget for the rendered output, in characters."
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"type": "attr",
|
|
154
|
+
"subType": "string",
|
|
155
|
+
"name": "owner",
|
|
156
|
+
"min": 0,
|
|
157
|
+
"max": 1,
|
|
158
|
+
"description": "Governance: the owner of this template."
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"type": "attr",
|
|
162
|
+
"subType": "string",
|
|
163
|
+
"name": "since",
|
|
164
|
+
"min": 0,
|
|
165
|
+
"max": 1,
|
|
166
|
+
"description": "Governance: the version this template was introduced in."
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"type": "attr",
|
|
170
|
+
"subType": "string",
|
|
171
|
+
"name": "requiredTags",
|
|
172
|
+
"isArray": true,
|
|
173
|
+
"min": 0,
|
|
174
|
+
"max": 1,
|
|
175
|
+
"description": "Output tags the rendered text must contain (drives the verify output-tag check)."
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"type": "attr",
|
|
179
|
+
"subType": "int",
|
|
180
|
+
"name": "maxTokens",
|
|
181
|
+
"min": 0,
|
|
182
|
+
"max": 1,
|
|
183
|
+
"description": "Token budget for the rendered prompt (LLM-specific)."
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"type": "attr",
|
|
187
|
+
"subType": "string",
|
|
188
|
+
"name": "requiredSlots",
|
|
189
|
+
"isArray": true,
|
|
190
|
+
"min": 0,
|
|
191
|
+
"max": 1,
|
|
192
|
+
"description": "Slots that must resolve at render time (drives the verify check)."
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "attr",
|
|
196
|
+
"subType": "string",
|
|
197
|
+
"name": "model",
|
|
198
|
+
"min": 0,
|
|
199
|
+
"max": 1,
|
|
200
|
+
"description": "Target model id (LLM-specific)."
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"type": "attr",
|
|
204
|
+
"subType": "string",
|
|
205
|
+
"name": "responseRef",
|
|
206
|
+
"min": 0,
|
|
207
|
+
"max": 1,
|
|
208
|
+
"description": "Optional ref to the response value-object this prompt expects (peer of @payloadRef; drives typed LLM-call trace derivation)."
|
|
209
|
+
}
|
|
210
|
+
]
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"type": "template",
|
|
214
|
+
"subType": "output",
|
|
215
|
+
"children": [
|
|
216
|
+
{
|
|
217
|
+
"type": "attr",
|
|
218
|
+
"subType": "string",
|
|
219
|
+
"name": "payloadRef",
|
|
220
|
+
"min": 1,
|
|
221
|
+
"max": 1,
|
|
222
|
+
"description": "Reference to the payload (a view-object / projection) this template renders against."
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"type": "attr",
|
|
226
|
+
"subType": "string",
|
|
227
|
+
"name": "textRef",
|
|
228
|
+
"min": 0,
|
|
229
|
+
"max": 1,
|
|
230
|
+
"description": "2-layer logical reference (group/source) to the body text, resolved by a provider at render time."
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"type": "attr",
|
|
234
|
+
"subType": "string",
|
|
235
|
+
"name": "format",
|
|
236
|
+
"min": 0,
|
|
237
|
+
"max": 1,
|
|
238
|
+
"default": "text",
|
|
239
|
+
"allowedValues": [
|
|
240
|
+
"text",
|
|
241
|
+
"html",
|
|
242
|
+
"xml",
|
|
243
|
+
"csv",
|
|
244
|
+
"json",
|
|
245
|
+
"markdown",
|
|
246
|
+
"spreadsheet"
|
|
247
|
+
],
|
|
248
|
+
"description": "Output format; drives the render engine's escaping/whitespace behavior."
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"type": "attr",
|
|
252
|
+
"subType": "int",
|
|
253
|
+
"name": "maxChars",
|
|
254
|
+
"min": 0,
|
|
255
|
+
"max": 1,
|
|
256
|
+
"description": "Size budget for the rendered output, in characters."
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"type": "attr",
|
|
260
|
+
"subType": "string",
|
|
261
|
+
"name": "owner",
|
|
262
|
+
"min": 0,
|
|
263
|
+
"max": 1,
|
|
264
|
+
"description": "Governance: the owner of this template."
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"type": "attr",
|
|
268
|
+
"subType": "string",
|
|
269
|
+
"name": "since",
|
|
270
|
+
"min": 0,
|
|
271
|
+
"max": 1,
|
|
272
|
+
"description": "Governance: the version this template was introduced in."
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"type": "attr",
|
|
276
|
+
"subType": "string",
|
|
277
|
+
"name": "requiredTags",
|
|
278
|
+
"isArray": true,
|
|
279
|
+
"min": 0,
|
|
280
|
+
"max": 1,
|
|
281
|
+
"description": "Output tags the rendered text must contain (drives the verify output-tag check)."
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"type": "attr",
|
|
285
|
+
"subType": "string",
|
|
286
|
+
"name": "promptStyle",
|
|
287
|
+
"min": 0,
|
|
288
|
+
"max": 1,
|
|
289
|
+
"default": "guide",
|
|
290
|
+
"allowedValues": [
|
|
291
|
+
"guide",
|
|
292
|
+
"inline",
|
|
293
|
+
"exampleOnly"
|
|
294
|
+
],
|
|
295
|
+
"description": "FR-010 output-format prompt presentation: 'guide' (prose list + example), 'inline' (inline placeholders / enum choices), or 'exampleOnly' (filled skeleton). Guidance is never emitted as comments."
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"type": "attr",
|
|
299
|
+
"subType": "string",
|
|
300
|
+
"name": "kind",
|
|
301
|
+
"min": 0,
|
|
302
|
+
"max": 1,
|
|
303
|
+
"default": "document",
|
|
304
|
+
"allowedValues": [
|
|
305
|
+
"document",
|
|
306
|
+
"email"
|
|
307
|
+
],
|
|
308
|
+
"description": "Output shape: 'document' (renders @textRef in @format → one string) or 'email' (renders subject + html + optional text → a structured EmailDocument)."
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"type": "attr",
|
|
312
|
+
"subType": "string",
|
|
313
|
+
"name": "subjectRef",
|
|
314
|
+
"min": 0,
|
|
315
|
+
"max": 1,
|
|
316
|
+
"description": "Email only: 2-layer logical reference (group/source) to the subject-line text. Required when @kind=\"email\"."
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"type": "attr",
|
|
320
|
+
"subType": "string",
|
|
321
|
+
"name": "htmlBodyRef",
|
|
322
|
+
"min": 0,
|
|
323
|
+
"max": 1,
|
|
324
|
+
"description": "Email only: 2-layer logical reference (group/source) to the HTML body text. Required when @kind=\"email\"."
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"type": "attr",
|
|
328
|
+
"subType": "string",
|
|
329
|
+
"name": "textBodyRef",
|
|
330
|
+
"min": 0,
|
|
331
|
+
"max": 1,
|
|
332
|
+
"description": "Email only: 2-layer logical reference (group/source) to the optional plain-text alternative body."
|
|
333
|
+
}
|
|
334
|
+
]
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"type": "template",
|
|
338
|
+
"subType": "toolcall",
|
|
339
|
+
"children": [
|
|
340
|
+
{
|
|
341
|
+
"type": "attr",
|
|
342
|
+
"subType": "string",
|
|
343
|
+
"name": "toolName",
|
|
344
|
+
"min": 1,
|
|
345
|
+
"max": 1,
|
|
346
|
+
"description": "Wire tool name surfaced to the LLM (vendor-specific format)."
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"type": "attr",
|
|
350
|
+
"subType": "string",
|
|
351
|
+
"name": "payloadRef",
|
|
352
|
+
"min": 1,
|
|
353
|
+
"max": 1,
|
|
354
|
+
"description": "Output value-object the tool produces (resolved against the metamodel)."
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"type": "attr",
|
|
358
|
+
"subType": "string",
|
|
359
|
+
"name": "owner",
|
|
360
|
+
"min": 0,
|
|
361
|
+
"max": 1,
|
|
362
|
+
"description": "Governance: the owner of this toolcall."
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"type": "attr",
|
|
366
|
+
"subType": "string",
|
|
367
|
+
"name": "since",
|
|
368
|
+
"min": 0,
|
|
369
|
+
"max": 1,
|
|
370
|
+
"description": "Governance: the version this toolcall was introduced in."
|
|
371
|
+
}
|
|
372
|
+
]
|
|
373
|
+
}
|
|
374
|
+
]
|
|
375
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// promptProvider — the prompt / AI + serialization MetaDataTypeProvider
|
|
2
|
+
// (FR-004/006/010/011). EXTENDS the core-registered field types with the
|
|
3
|
+
// AI-domain markers that are NOT core field properties:
|
|
4
|
+
// - every field subtype: @xmlText (XML text-content extract), @example,
|
|
5
|
+
// @instruction (FR-010 field-teaching prompt fragment);
|
|
6
|
+
// - field.enum only: @enumAlias / @enumDoc / @coerceDefault / @normalize
|
|
7
|
+
// (FR-010/FR-011 tolerant-extract overlays);
|
|
8
|
+
// - object.value only: @normalize (the object-level default normalization mode
|
|
9
|
+
// for its enum fields' tolerant extract).
|
|
10
|
+
//
|
|
11
|
+
// FR-033 S1.5-B: the attrs + their descriptions are now DATA — read from
|
|
12
|
+
// spec/metamodel/prompt.json (embedded as PROMPT_DEFINITION) via the unified
|
|
13
|
+
// applyProviderDefinition apply path's `extends` handling. The provider declares
|
|
14
|
+
// no new types, so the factory map is empty.
|
|
15
|
+
|
|
16
|
+
import type { MetaDataTypeProvider } from "../provider.js";
|
|
17
|
+
import type { TypeRegistry } from "../registry.js";
|
|
18
|
+
import { applyProviderDefinition } from "../provider-data.js";
|
|
19
|
+
import { PROMPT_DEFINITION } from "./prompt-definition.embedded.js";
|
|
20
|
+
|
|
21
|
+
export const promptProvider: MetaDataTypeProvider = {
|
|
22
|
+
id: "metaobjects-prompt",
|
|
23
|
+
dependencies: ["metaobjects-core-types"],
|
|
24
|
+
description:
|
|
25
|
+
"Prompt / AI + serialization domain — @xmlText / @example / @instruction field markers on every field subtype, the @enumAlias/@enumDoc/@coerceDefault/@normalize tolerant-extract overlays on field.enum, and the object-level @normalize default on object.value.",
|
|
26
|
+
registerTypes(registry: TypeRegistry): void {
|
|
27
|
+
applyProviderDefinition(registry, PROMPT_DEFINITION, {});
|
|
28
|
+
},
|
|
29
|
+
};
|
|
@@ -65,6 +65,7 @@ export const TEMPLATE_ATTR_HTML_BODY_REF = "htmlBodyRef";
|
|
|
65
65
|
export const TEMPLATE_ATTR_TEXT_BODY_REF = "textBodyRef";
|
|
66
66
|
|
|
67
67
|
// Prompt-overlay attrs (template.prompt only).
|
|
68
|
+
export const TEMPLATE_ATTR_RESPONSE_REF = "responseRef";
|
|
68
69
|
export const TEMPLATE_ATTR_MAX_TOKENS = "maxTokens";
|
|
69
70
|
export const TEMPLATE_ATTR_REQUIRED_SLOTS = "requiredSlots";
|
|
70
71
|
export const TEMPLATE_ATTR_MODEL = "model";
|
|
@@ -107,3 +108,10 @@ export const PROMPT_STYLES = [
|
|
|
107
108
|
PROMPT_STYLE_EXAMPLE_ONLY,
|
|
108
109
|
] as const;
|
|
109
110
|
export type PromptStyle = (typeof PROMPT_STYLES)[number];
|
|
111
|
+
|
|
112
|
+
// @xmlText — a FIELD-level marker (boolean) for the tolerant extract engine: this field
|
|
113
|
+
// receives its element's TEXT CONTENT when a template.output response is parsed from XML
|
|
114
|
+
// (JAXB @XmlValue / Jackson @JacksonXmlText / .NET [XmlText]). Registered on field.* by
|
|
115
|
+
// promptProvider (the prompt / AI + serialization domain owns this extract concern — NOT a
|
|
116
|
+
// core field property). No effect for @format: json. Mirrors Java TemplateConstants.ATTR_XML_TEXT.
|
|
117
|
+
export const FIELD_ATTR_XML_TEXT = "xmlText";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// AUTO-GENERATED by scripts/generate-embedded-metamodel.ts — DO NOT EDIT.
|
|
2
|
+
// Canonical source: repo-root spec/metamodel/template.json
|
|
3
|
+
// Regenerate: bun run scripts/generate-embedded-metamodel.ts
|
|
4
|
+
//
|
|
5
|
+
// Embeds the canonical FR-033 ProviderDefinition so the provider can register
|
|
6
|
+
// itself wherever the on-disk spec/ tree is unavailable (bundled builds).
|
|
7
|
+
import type { ProviderDefinition } from "../provider-data.js";
|
|
8
|
+
|
|
9
|
+
export const TEMPLATE_DEFINITION: ProviderDefinition = {
|
|
10
|
+
"provider": "metaobjects-core-types",
|
|
11
|
+
"types": [
|
|
12
|
+
{
|
|
13
|
+
"type": "template",
|
|
14
|
+
"subType": "base",
|
|
15
|
+
"description": "Abstract base template — the shared root subtype for the fourth pillar (FR-004, ADR-0011). A template is a typed payload bound to either a rendered text artifact (prompt/output) or a tool-call envelope. The base carries no attrs of its own; concrete subtypes add their reference + governance attrs.",
|
|
16
|
+
"rules": "A single MetaTemplate node class backs every template subtype (no subType→class dispatch); the subtype selects which reserved-attr set applies. @format (a closed-enum ATTRIBUTE, never a subtype) drives the render engine's escaper/whitespace behavior, so a new format costs one escaper + one enum value rather than a new subtype + cross-language port."
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"type": "template",
|
|
20
|
+
"subType": "prompt",
|
|
21
|
+
"description": "An LLM-targeted renderable prompt template (FR-004). Carries the generic reference + governance attrs plus the LLM overlay (@maxTokens / @requiredSlots / @model / @responseRef). Its renderable body is required via @textRef.",
|
|
22
|
+
"rules": "prompt requires @payloadRef (the typed payload it renders against) AND @textRef (the body text, provider-resolved at render time — enforced in the loader's validateTemplatePayloadRefs pass, not at the attr layer where @textRef is relaxed to optional so template.output email can omit it). @format is a closed enum keyed by the render engine's escaper. @responseRef (optional) names the response value-object the prompt expects and drives typed LLM-call trace derivation."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "template",
|
|
26
|
+
"subType": "output",
|
|
27
|
+
"description": "An output / serialization template (FR-004): every rendered artifact other than an LLM prompt — a document (email, export, docs, config) or an email. Carries the generic reference + governance attrs, the FR-010 @promptStyle, and the @kind + email part-refs.",
|
|
28
|
+
"rules": "output is either a document (@kind=\"document\" or absent → renders @textRef in @format to one string) or an email (@kind=\"email\" → renders subject + html + optional text to a structured EmailDocument). The cross-field presence rule is enforced in the loader's validateTemplatePayloadRefs pass: document requires @textRef; email requires @subjectRef AND @htmlBodyRef (with @textBodyRef optional) and carries NO @textRef. @format is a closed enum keyed by the render engine's escaper; @promptStyle (FR-010) selects the output-format prompt presentation and is never emitted as comments."
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"type": "template",
|
|
32
|
+
"subType": "toolcall",
|
|
33
|
+
"description": "A vendor-agnostic LLM tool-call envelope (ADR-0011). Unlike prompt/output it has NO renderable text body — the body IS the structured output schema resolved via @payloadRef. This is why toolcall is its own subtype rather than template.output + @toolName. Does NOT inherit the generic attrs.",
|
|
34
|
+
"rules": "toolcall requires @toolName (the wire tool name surfaced to the LLM) AND @payloadRef (the output value-object the tool produces). @textRef is intentionally absent — a tool-call has no renderable text. Core keeps toolcall vendor-agnostic; vendor wire details (retry semantics, fallback shapes, parallel invocation, cache hints) are added by consumer providers via registry.extend(TYPE_TEMPLATE, \"toolcall\", { attributes: [...] }). The LLM-facing tool description reuses the @description documentation common attr (added to every type by docProvider), so it is not redeclared here."
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
};
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { type AttrSchema } from "../../registry.js";
|
|
2
|
-
import {
|
|
3
|
-
ATTR_SUBTYPE_STRING,
|
|
4
|
-
ATTR_SUBTYPE_STRINGARRAY,
|
|
5
|
-
} from "../attr/attr-constants.js";
|
|
6
|
-
import {
|
|
7
|
-
DOC_ATTR_ALIASES,
|
|
8
|
-
DOC_ATTR_DEPRECATED,
|
|
9
|
-
DOC_ATTR_DESCRIPTION,
|
|
10
|
-
DOC_ATTR_NOTES,
|
|
11
|
-
DOC_ATTR_REPLACED_BY,
|
|
12
|
-
DOC_ATTR_SEE_ALSO,
|
|
13
|
-
DOC_ATTR_TITLE,
|
|
14
|
-
} from "./doc-constants.js";
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* The 7 universal documentation common attrs. Registered via the
|
|
18
|
-
* registry.registerCommonAttrs() hook by the documentation provider.
|
|
19
|
-
* Per ADR-0006, attr names are bare here; the serializer prefixes with @.
|
|
20
|
-
*/
|
|
21
|
-
export const commonDocAttrs: AttrSchema[] = [
|
|
22
|
-
{
|
|
23
|
-
name: DOC_ATTR_DESCRIPTION,
|
|
24
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
25
|
-
required: false,
|
|
26
|
-
description: "Free-form user-facing prose. Markdown allowed, multi-line via YAML '|' block scalar. Flows into doc-gen surfaces (JSDoc / XML-doc / Postgres COMMENT / Mermaid prose).",
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: DOC_ATTR_TITLE,
|
|
30
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
31
|
-
required: false,
|
|
32
|
-
description: "Short single-line human label (e.g. 'Email' for a `field.string email`). Optional supplement to description.",
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: DOC_ATTR_NOTES,
|
|
36
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
37
|
-
required: false,
|
|
38
|
-
description: "Internal-only rationale. Stays in metadata; never emitted to user-facing docs.",
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: DOC_ATTR_DEPRECATED,
|
|
42
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
43
|
-
required: false,
|
|
44
|
-
description: "Text reason for deprecation. Presence ⇒ deprecated. Codegen emits @deprecated / [Obsolete] with this reason.",
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
name: DOC_ATTR_REPLACED_BY,
|
|
48
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
49
|
-
required: false,
|
|
50
|
-
description: "FQN reference to the replacement element. Only meaningful with `deprecated`. Codegen appends 'Replaced by <ref>' to deprecation messages.",
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: DOC_ATTR_SEE_ALSO,
|
|
54
|
-
valueType: ATTR_SUBTYPE_STRINGARRAY,
|
|
55
|
-
required: false,
|
|
56
|
-
description: "External documentation URLs. Codegen emits @see / <seealso href=...>.",
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: DOC_ATTR_ALIASES,
|
|
60
|
-
valueType: ATTR_SUBTYPE_STRINGARRAY,
|
|
61
|
-
required: false,
|
|
62
|
-
description: "Alternate names for this element. Aids AI authoring disambiguation, search, migration.",
|
|
63
|
-
},
|
|
64
|
-
];
|