@frontal-labs/ontology
v1.0.3
Published
Frontal Ontology SDK — semantic model and schema management, migrations, and AI-powered inference
Downloads
505
Maintainers
Readme
@frontal-labs/ontology
Client for the Frontal Ontology platform (/v1/ontology/*). The API is composed
of independent subdomain services, each exposed as a namespace:
engine, objects, relationships, schemas, versions, validation,
transformations, reasoning, rollouts, rollups, extract, and events.
(The graph subdomain is served by @frontal-labs/graph.)
Installation
npm install @frontal-labs/ontology@frontal-labs/core is included automatically as a dependency.
Quick Start
import { ontology } from "@frontal-labs/ontology";
// Generate an ontology with the engine, then browse object types.
const proposal = await ontology.engine.generate({
description: "Model a billing dispute lifecycle with SLA states.",
});
const objectTypes = await ontology.objects.listObjectTypes({ limit: 10 });The ontology singleton reads FRONTAL_API_KEY and
FRONTAL_ONTOLOGY_API_URL from the environment.
Usage
Explicit config
import { createOntologyClient } from "@frontal-labs/ontology";
const ontology = createOntologyClient({
apiKey: process.env.FRONTAL_API_KEY!,
baseUrl: "https://api.frontal.dev/v1",
});
// Define/validate a schema via the schemas subdomain.
await ontology.schemas.create({
name: "Invoice",
fields: [
{ name: "amount", type: "number", required: true },
{ name: "currency", type: "string", required: true },
],
});Shared client (multiple SDKs)
import { FrontalClient } from "@frontal-labs/core";
import { createOntologyClient } from "@frontal-labs/ontology";
const client = new FrontalClient({
apiKey: process.env.FRONTAL_API_KEY!,
baseUrl: "https://api.frontal.dev/v1",
});
const ontology = createOntologyClient(client);Validate a payload
await ontology.validation.validatePayload({
objectType: "Incident",
payload: { severity: "high" },
});AI-powered generation & inference
const proposal = await ontology.engine.generate({
description: "Model a billing dispute lifecycle with ownership and SLA states.",
substrates: ["billing", "support"],
});
const inferred = await ontology.engine.inferClasses({ samples: [] });Versions & rollouts
const bundle = await ontology.versions.createReleaseBundle({ version: "2.0.0" });
const rollout = await ontology.rollouts.create({ bundleId: bundle.id });
await ontology.rollouts.start(rollout.id);
const status = await ontology.rollouts.status(rollout.id);Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| FRONTAL_API_KEY | Yes | — | Frontal API authentication key |
| FRONTAL_API_URL | No | https://api.frontal.dev/v1 | Base URL for the Frontal API |
| FRONTAL_ENV | No | development | Runtime environment (development, test, production) |
| FRONTAL_DEBUG | No | false | Enable debug logging |
