43 lines
1.1 KiB
Markdown
43 lines
1.1 KiB
Markdown
# Packages
|
|
|
|
Installable `.pkg` archives for Chat Switchboard. Each subdirectory is a
|
|
package — either a surface (routable UI), an extension (hooks/tools/pipes),
|
|
or both (`full` type).
|
|
|
|
v0.28.7: Renamed from `surfaces/`. The `.pkg` format replaces `.surface`.
|
|
|
|
## Building
|
|
|
|
```bash
|
|
./packages/build.sh # build all → dist/*.pkg
|
|
./packages/build.sh icd-test-runner # build one
|
|
```
|
|
|
|
## Installing
|
|
|
|
```bash
|
|
curl -X POST http://localhost:8080/api/v1/admin/packages/install \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-F file=@dist/icd-test-runner.pkg
|
|
```
|
|
|
|
Or use the admin UI → System → Packages → Upload.
|
|
|
|
## Archive Format
|
|
|
|
A `.pkg` file is a zip containing:
|
|
|
|
```
|
|
manifest.json — required (must have "id" and "title")
|
|
js/ — optional JavaScript assets
|
|
css/ — optional stylesheets
|
|
assets/ — optional images, icons, etc.
|
|
```
|
|
|
|
The manifest `type` field determines behavior:
|
|
- `surface` (default) — routable page at `/s/:slug`
|
|
- `extension` — hooks, tools, and/or pipe filters
|
|
- `full` — both a surface and an extension
|
|
|
|
`.surface` archives are accepted as a backward-compatible alias.
|