Packaging
Ship a publishable Lunnoa integration app with the lunnoaApp manifest.
Installable apps are npm packages that default-export createApp({...}) and declare a lunnoaApp block in package.json. SuperAdmins install packages on a running Lunnoa server via the admin API; no platform rebuild is required.
Package layout
package.json
| Field | Description |
|---|---|
lunnoaApp.appId | Must match createApp({ id }) exactly |
lunnoaApp.toolkitVersion | Compatible toolkit semver range |
lunnoaApp.platformVersion | Compatible Lunnoa Automate platform semver range |
Rules that avoid install failures
- Export one default:
export default createApp({ ... }) - Keep
@lunnoa/toolkitas a peerDependency (not bundled) - Align
appIdwith every action, trigger, and connection id prefix - Ship compiled CommonJS (or whatever the host
require()expects) viamain - Pin toolkit and platform ranges you have actually tested
App metadata reminders
On createApp:
id: unique kebab-case slug used as the registry keylogoUrl: shown in the catalogue and on steps that lack an action iconisPublished: defaults totrue; setfalsewhile developingavailableForAgent: defaults totruesystemPromptFragment: optional short policy text injected when any of the app's actions are enabled on an agent
Reference packages
For working examples, see lunnoa_apps and the built-in apps in the lunnoa_automate monorepo (packages/apps). Built-ins use the same createApp contract; installable packages depend on the published npm toolkit version.
Next
- Integration toolkit: overview and quickstart
- Actions: fill the
actionsarray - Triggers and Connections: complete the app surface