Skip to content

Projection and catalog

Projection is a deterministic compilation step. It turns an Agent App manifest into host-readable catalog objects. It does not run the app.

Projection lets a host show app entries, setup needs, permissions, and artifacts before activation.

Inputs

Projection uses:

  • parsed manifest from APP.md
  • package identity
  • manifest hash
  • package hash
  • host capability profile
  • optional tenant enablement metadata

It should not use customer data or runtime outputs.

Outputs

A projection can include:

OutputPurpose
App summaryCatalog card and install review.
EntriesPages, panels, commands, workflows, artifacts, background tasks, settings.
Capability requirementsSDK and host capability negotiation.
UI descriptorsRoutes, panels, cards, artifact viewers.
Storage descriptorsNamespace, schema, migrations, retention.
Workflow descriptorsState machines and human review nodes.
Permission promptsInstall-time and runtime review.
Knowledge slotsRequired and optional Knowledge bindings.
Tool requirementsToolHub and policy checks.
Artifact typesDurable output contracts.
Eval rulesQuality gates and acceptance state.
ProvenanceApp version, package hash, manifest hash, standard version.

Projection example

json
{
  "app": {
    "name": "content-factory-app",
    "version": "0.3.0",
    "appType": "domain-app"
  },
  "entries": [
    {
      "key": "content_factory",
      "kind": "page",
      "title": "Content Factory",
      "route": "/content-factory",
      "provenance": {
        "appName": "content-factory-app",
        "appVersion": "0.3.0",
        "manifestHash": "sha256:...",
        "packageHash": "sha256:..."
      }
    }
  ]
}

Determinism

Given the same package and host profile, projection should produce the same output. Determinism enables:

  • cache validation
  • review diffs
  • rollback
  • audit
  • reproducible readiness
  • cleanup plans

Avoid generating random IDs during projection. Generate runtime IDs only when entries run.

Catalog levels

A host can maintain several catalog views:

CatalogContents
Registry catalogApp metadata before download.
Installed catalogApps installed in local cache.
Workspace catalogEntries enabled for a workspace.
Runtime catalogEntries currently ready to run.
Artifact catalogOutputs created by app runs.

Projection feeds the installed and workspace catalogs.

Cache invalidation

Invalidate projection when:

  • package hash changes
  • manifest hash changes
  • host capability profile changes
  • tenant enablement changes
  • policy defaults change
  • app is upgraded, disabled, or uninstalled

Knowledge bindings or secrets usually affect readiness, not projection shape, unless the host chooses to hide entries based on setup.

Safety rules

Projection must not:

  • execute workflows
  • call tools
  • start agent tasks
  • read private files
  • load secrets
  • run UI bundle code
  • apply storage migrations

If an app requires these actions to understand its catalog, the package is not valid for safe host review.

Checklist

  • Projection output includes provenance on every object.
  • Entry keys are stable.
  • Unsupported entry kinds are rejected or marked compatibility-only.
  • Runtime package paths are recorded but not executed.
  • Permissions and setup needs are visible before activation.
  • Projection can be deleted and rebuilt from package metadata.

Draft host-platform standard for installable agent applications.