You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Loader only reads the module default export object. Named exports are ignored.
79
-
- TUI shape is `default export { id?, tui }`.
84
+
- TUI shape is `default export { id?, tui }`; including `server` is rejected.
85
+
- A single module cannot export both `server` and `tui`.
80
86
-`tui` signature is `(api, options, meta) => Promise<void>`.
81
87
- If package `exports` contains `./tui`, the loader resolves that entrypoint. Otherwise it uses the resolved package target.
88
+
- If a package supports both server and TUI, use separate files and package `exports` (`./server` and `./tui`) so each target resolves to a target-only module.
82
89
- File/path plugins must export a non-empty `id`.
83
90
- npm plugins may omit `id`; package `name` is used.
84
91
- Runtime identity is the resolved plugin id. Later plugins with the same id are rejected, including collisions with internal plugin ids.
@@ -137,6 +144,7 @@ npm plugins can declare a version compatibility range in `package.json` using th
137
144
- With `--force`, replacement matches by package name. If the existing row is `[spec, options]`, those tuple options are kept.
138
145
- Tuple targets in `oc-plugin` provide default options written into config.
139
146
- A package can target `server`, `tui`, or both.
147
+
- If a package targets both, each target must still resolve to a separate target-only module. Do not export `{ server, tui }` from one module.
140
148
- There is no uninstall, list, or update CLI command for external plugins.
141
149
- Local file plugins are configured directly in `tui.json`.
0 commit comments