Package format
A .memona-plugin package is a ZIP archive with these root entries:
manifest.json required
plugin.wasm required WebAssembly component
README.md optional UTF-8 text
LICENSE optional UTF-8 text
icon.png optional PNG
Version 1 rejects other entries, duplicate paths, directories, symlinks, encrypted archives and paths that could escape the archive root. There are no install hooks or executable frontend assets.
Manifest
{
"schemaVersion": 1,
"id": "your-publisher/my-provider",
"name": "My filesystem",
"version": "0.1.0",
"apiVersion": "0.1.0",
"description": "Connect to my filesystem service.",
"license": "MIT",
"entry": "plugin.wasm",
"networkHosts": ["files.example.com"],
"providers": [
{
"id": "files",
"name": "My filesystem",
"schemes": ["myfiles"],
"configFields": [
{"key": "endpoint", "label": "Service URL", "kind": "text", "required": true},
{"key": "token", "label": "Access token", "kind": "password", "required": true}
]
}
]
}
Replace the example publisher and host with ones you own. Your verified publisher account must own the publisher portion of the package ID.
| Field | Meaning |
|---|---|
schemaVersion | Manifest shape; currently 1. |
id | Immutable publisher/plugin identifier. |
version | Canonical semantic release version. |
apiVersion | Memona plugin API version; currently 0.1.0. |
entry | Must be plugin.wasm in this format. |
networkHosts | Declared network destinations; connection grants still apply. |
providers | Stable provider identities and declarative configuration fields. |
Publisher/plugin/provider slugs use lowercase ASCII letters, digits and hyphens,
begin and end with a letter or digit, and have at most 64 characters. Human names
can use other languages. Configuration kind is text, password or boolean.
Never place a credential in a manifest or a password default.
An empty networkHosts list declares no network access. A provider for arbitrary
self-hosted endpoints may declare "*"; users still grant exact destinations
per connection. Connection grants never accept a wildcard, and private-network
access requires its separate connection setting.
Limits and compatibility
| Item | Limit |
|---|---|
| Compressed package | 32 MiB |
| Expanded archive total | 128 MiB |
| WASM component | 64 MiB |
| Manifest | 64 KiB |
| README or license | 256 KiB each |
| PNG icon | 1 MiB |
The same validation runs on the store and in Memona. Components must implement
the full provider interface, including optional-operation
methods that may return unsupported, and import only supported host services.
Each published ID/version permanently identifies one byte sequence and SHA-256 digest. Correct a release by incrementing its version. Withdrawing a release prevents new catalog installations; it does not silently remove installed code.