@vestra-player/sdk 1.5.4 → 1.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.5.6
4
+
5
+ **A reference for AI assistants.** Documentation and packaging only; no API change, `apiVersion` stays `vestra/1`. (1.5.5 was not published to npm; this release includes its changes.)
6
+
7
+ - **`llms.txt` and `llms-full.txt`** ([llmstxt.org](https://llmstxt.org)) in the package, exported as `@vestra-player/sdk/llms.txt` and `@vestra-player/sdk/llms-full.txt` (in `node_modules/@vestra-player/sdk/`), and on the documentation site (`https://vestrasys.github.io/vestra-player-sdk/llms.txt`). For Vestra Player AI and other assistants that write plugins.
8
+ - `llms.txt` (about 10 KB): what a plugin is, the rules, the folder layout, a manifest with every field and the manifest limits, `activate`, every capability, a `TestHost` test, the command line, the common error codes, and the line numbers of each topic in the full file.
9
+ - `llms-full.txt` (about 300 KB): the guides (Getting started, the UI concept page, both how-tos), every public declaration of `@vestra-player/sdk` and `@vestra-player/sdk/testing` with its description and its `@capability`, `@player`, `@param`, `@returns`, `@throws` and `@deprecated` tags, the internal types the API refers to, and each example's README, walkthrough and complete source (TypeScript, Slint, tests).
10
+ - Generated from the sources by `npm run docs:llms` (`scripts/llms.mjs`); CI fails when the committed files are stale.
11
+ - **Getting started**: a "Rules for plugins" section (only the public SDK, `import type`, no other plugins, no system commands, macOS and Windows, your own id) and a manifest with every field.
12
+ - `scripts/check-pack.mjs` allows the two files and checks that they name the package version; the install smoke test resolves both exports.
13
+
14
+ ## 1.5.5
15
+
16
+ **Reserved `vestra.` ids** (player 0.4.1). Documentation only; no API change, `apiVersion` stays `vestra/1`.
17
+
18
+ - Only the plugins built into the player are official plugins; the ids `vestra` and `vestra.*` (any case) are reserved for them. Every other plugin is a third-party plugin, including those hosted in the official plugin repository, and uses `<GitHub user or organization>.<plugin name>`.
19
+ - `PluginError` lists the code `reserved`: `packages.validate`, `packages.validateArchive`, `PackageCandidate.trial` and `PackageCandidate.install` refuse a package with a reserved id. Development loads (`vestra-player --plugin DIR`) still accept one, with a warning, so built-in plugins can be developed; they are never installed.
3
20
  ## 1.5.4
4
21
 
5
22
  **Markdown in list rows** (the player after 0.4.0). Additive; `apiVersion` stays `vestra/1`, and plugins written for 1.5.3 need no change.
package/README.md CHANGED
@@ -12,7 +12,8 @@
12
12
  <a href="https://vestrasys.github.io/vestra-player-sdk/">Documentation</a> ·
13
13
  <a href="https://vestrasys.github.io/vestra-player-sdk/documents/Getting_started.html">Getting started</a> ·
14
14
  <a href="https://github.com/vestrasys/vestra-player-sdk/tree/main/examples">Examples</a> ·
15
- <a href="https://github.com/vestrasys/vestra-player-sdk/blob/main/CHANGELOG.md">Changelog</a>
15
+ <a href="https://github.com/vestrasys/vestra-player-sdk/blob/main/CHANGELOG.md">Changelog</a> ·
16
+ <a href="https://vestrasys.github.io/vestra-player-sdk/llms.txt">llms.txt</a>
16
17
  </p>
17
18
  ## Features
18
19
 
@@ -21,6 +22,7 @@
21
22
  - **Tests without the player**: `@vestra-player/sdk/testing` runs your plugin against an in-memory host with `node --test`.
22
23
  - **One command line tool**, `vestra-plugin`, to check, test, build and pack a `.vxp` package.
23
24
  - **The same API on macOS and Windows**; every plugin runs in its own Node.js 26 process that the player ships.
25
+ - **A reference for AI assistants**: [`llms.txt`](https://vestrasys.github.io/vestra-player-sdk/llms.txt) (short index) and [`llms-full.txt`](https://vestrasys.github.io/vestra-player-sdk/llms-full.txt) (every declaration, the guides and the examples), also in the package as `@vestra-player/sdk/llms.txt` and `@vestra-player/sdk/llms-full.txt`.
24
26
 
25
27
  ## Install
26
28
 
@@ -75,6 +75,7 @@ export interface Disposable {
75
75
  * | `backend-uncertain` | The player's backend blocked a filter stage; call `retry()`. |
76
76
  * | `cleanup` | {@link PackageTrial.stop} could not confirm cleanup; call it again. |
77
77
  * | `limit` | A player-wide limit was reached (for example the number of commands). |
78
+ * | `reserved` | {@link Packages.validate}, {@link PackageCandidate.trial}, {@link PackageCandidate.install}: the id is `vestra` or starts with `vestra.` (any case), which only the player's built-in plugins use (player 0.4.1). |
78
79
  * | `versionMismatch` | The package needs a newer player (`minPlayerVersion`) or another `apiVersion`. |
79
80
  * | `ui-prepare` | The player could not prepare a mounted panel or a settings page (its Slint file does not compile, a bound property is not declared, or another plugin's panel holds the slot); `message` has the diagnostics. |
80
81
  * | `ui` | The player could not apply a property to a tool window or a settings page, or could not build the Options window (a property the Slint file does not declare, a value of the wrong type); `message` has Slint's reason. |
@@ -4083,13 +4084,18 @@ export interface PackageCandidate {
4083
4084
  readonly manifest: PackageManifest;
4084
4085
  /** The checks the player ran. */
4085
4086
  readonly checks: string[];
4086
- /** Load it temporarily alongside the installed plugins. */
4087
+ /**
4088
+ * Load it temporarily alongside the installed plugins. A reserved id
4089
+ * (`vestra.*`) fails with `reserved`.
4090
+ */
4087
4091
  trial(): Promise<PackageTrial>;
4088
4092
  /**
4089
4093
  * Install it. The same source upgrades the installed plugin (its data
4090
4094
  * stays); another source fails with `conflict` unless `replace` is set;
4091
4095
  * a built-in id fails with `unsupported` (built-ins update with the
4092
- * player).
4096
+ * player). A reserved id (`vestra` or `vestra.*`, which every built-in
4097
+ * uses) fails with `reserved` (player 0.4.1; already when validated), as
4098
+ * only the player installs built-in plugins.
4093
4099
  */
4094
4100
  install(options?: InstallOptions): Promise<PackageChange>;
4095
4101
  }
@@ -4197,12 +4203,17 @@ export interface PluginWarning {
4197
4203
  * ```
4198
4204
  */
4199
4205
  export interface Packages {
4200
- /** Validate a package directory (`plugins.manage`). */
4206
+ /**
4207
+ * Validate a package directory (`plugins.manage`). A package whose id is
4208
+ * reserved for the built-in plugins (`vestra` or `vestra.*`) fails with
4209
+ * `reserved` (player 0.4.1).
4210
+ */
4201
4211
  validate(directory: string): Promise<PackageCandidate>;
4202
4212
  /**
4203
4213
  * Validate a `.vxp` package file (`plugins.manage`, player 0.2.0): the
4204
4214
  * same checks as {@link Packages.validate} after unpacking. Check the
4205
- * file's sha256 yourself before calling when you know it.
4215
+ * file's sha256 yourself before calling when you know it. A reserved id
4216
+ * fails with `reserved`, as in {@link Packages.validate}.
4206
4217
  */
4207
4218
  validateArchive(file: string): Promise<PackageCandidate>;
4208
4219
  /** Restore a plugin's previous version (`plugins.manage`). */