Skip to content
LACE
  • v0.1 Current
  • Python
  • TypeScript Soon

lace-app-sdk

Manifest

LaceAppManifest declares everything your app provides. LACE discovers manifests and wires providers at bootstrap — no registration calls, no glue code.

app.pypython
# app.py — one file declares the whole app. LACE discovers the rest.
from lace_app_sdk.manifest import LaceAppManifest
from app.data import TICKETS

MANIFEST = LaceAppManifest(
    app_id="acme.field_intake",
    display_name="Field Intake",
    version="0.1.0",
    data_collections=[TICKETS],
    tool_providers=["app.tools:ToolProvider"],
    agent_providers=["app.agents:AgentProvider"],
    route_providers=["app.routes:RouteProvider"],
)

What a manifest declares

Routes, tools, pipelines, agents, data collections, UI, schedules, and migrations. The manifest is the app's whole contract with the platform: it is what gets reviewed before publish, what the permission model is derived from, and what changes when you ship a new version.

Declaration is enforcement

Because the manifest is the only way capabilities enter the runtime, an app cannot acquire a tool, a route, or a data collection it did not declare. That is what makes a diff of the manifest a meaningful review artifact — reviewing the declaration is reviewing the blast radius.

Next: data collections.