trellis
Version:
Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications
70 lines • 2.17 kB
TypeScript
/**
* Ontology Registry — Manages loaded ontology schemas.
*
* Provides registration, lookup, inheritance resolution, and
* entity-type-to-schema mapping.
*
* @module trellis/core/ontology
*/
import type { OntologySchema, EntityDef, RelationDef, AttributeDef } from './types.js';
export declare class OntologyRegistry {
private schemas;
/** Resolved entity defs (with inherited attributes merged). */
private resolvedEntities;
/** Resolved relation defs. */
private resolvedRelations;
/**
* Register an ontology schema.
* Throws if an ontology with the same ID is already registered at the same version.
*/
register(schema: OntologySchema): void;
/**
* Unregister an ontology by ID.
*/
unregister(id: string): void;
/**
* Get a registered ontology schema by ID.
*/
get(id: string): OntologySchema | undefined;
/**
* List all registered ontology schemas.
*/
list(): OntologySchema[];
/**
* Get the resolved entity definition for an entity type name.
* Returns the entity def with inherited attributes merged in.
*/
getEntityDef(typeName: string): EntityDef | undefined;
/**
* Get the ontology ID that defines a given entity type.
*/
getEntityOntology(typeName: string): string | undefined;
/**
* List all known entity type names.
*/
listEntityTypes(): string[];
/**
* Get all relation definitions involving a given entity type
* (either as source or target).
*/
getRelationsForType(typeName: string): RelationDef[];
/**
* Get a specific relation definition by name.
*/
getRelationDef(name: string): RelationDef | undefined;
/**
* List all known relation names.
*/
listRelationNames(): string[];
/**
* Check if an entity type is known to any registered ontology.
*/
hasEntityType(typeName: string): boolean;
/**
* Get the required attributes for an entity type.
*/
getRequiredAttributes(typeName: string): AttributeDef[];
private _resolve;
private _resolveEntity;
}
//# sourceMappingURL=registry.d.ts.map