refactor: remove ambient plugin authority
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
# Rust Service Plugin Template
|
||||
# Rust Component Model instance Plugin template
|
||||
|
||||
This template targets the Component Model-only runtime (`runtime.kind = "wasm-component"`) and exports the `yoi:plugin/instance@1.0.0` world.
|
||||
This offline authoring template declares the proposed `yoi:plugin/instance@1.0.0` world. Yoi currently provides no Plugin installation or Worker execution path.
|
||||
|
||||
It demonstrates both authoring surfaces supported by a shared Plugin instance:
|
||||
The example contains request/response Tool and Service ingress shapes that a future sandboxed Server Plugin platform may support. Their host API and grant metadata is inert in the current product and grants no authority.
|
||||
|
||||
- `example_echo` is an ordinary request/response Tool handler.
|
||||
- `example_ws` is a Service ingress handler. The host owns WebSocket receive/reconnect work and dispatches bounded `websocket_text` events into `handle_ingress`. The guest replies by returning a `websocket_send` output command in `ServiceOutput`; do not run a guest-side `recv(timeout)` polling loop. The manifest declares `host_api.websocket` plus a matching `[[websocket]]` target for the example URL. Enablement grants must explicitly allow the same WebSocket target before the host will send output commands.
|
||||
|
||||
Build with `cargo component build --release` (or the project-specific build command used by your Plugin packaging flow), then run `yoi plugin check` / `yoi plugin pack` from the generated Plugin directory.
|
||||
Build with `cargo component build --release` (or the project-specific build command used by your package), then run `yoi plugin check .` and `yoi plugin pack .` against the explicit directory. Passing offline validation does not install or authorize the package.
|
||||
|
||||
@@ -4,13 +4,13 @@ This is the embedded starter template for a Yoi Component Model Tool Plugin writ
|
||||
|
||||
## What this template demonstrates
|
||||
|
||||
- `wasm-component` runtime targeting `yoi:plugin/tool@1.0.0`.
|
||||
- Offline package metadata targeting the proposed `yoi:plugin/tool@1.0.0` world.
|
||||
- Guest-side runtime binding setup through the PDK.
|
||||
- Typed JSON input parsing through `run_json_tool` via `export_component_tool!`.
|
||||
- Typed JSON output serialization with `ToolOutput::json`.
|
||||
- Structured, bounded `ToolError` output for user-visible Tool failures.
|
||||
|
||||
The PDK is guest-side only. It does not grant filesystem, network, or environment authority. Host-side Plugin manifests and grants remain the authority boundary for Tool execution and host APIs.
|
||||
The PDK is guest-side only. It does not grant filesystem, network, or environment authority. Yoi currently provides no Plugin installation or Worker execution path; this template is retained for offline package authoring.
|
||||
|
||||
## Checkout/development dependency
|
||||
|
||||
@@ -26,7 +26,7 @@ If this template is copied to an independent Plugin repository, pin a Yoi source
|
||||
yoi-plugin-pdk = { git = "https://gitea.hareworks.net/Hare/yoi.git", package = "yoi-plugin-pdk", rev = "<pinned-yoi-commit-sha>" }
|
||||
```
|
||||
|
||||
`plugin.component.wasm` in the template is a text placeholder so `yoi plugin check` and `yoi plugin pack` can exercise deterministic local package validation immediately. Replace it with a real built component before enabling or executing the Plugin.
|
||||
`plugin.component.wasm` in the template is a text placeholder so `yoi plugin check` and `yoi plugin pack` can exercise deterministic local package validation immediately. Replace it with a real built component before treating the offline package as verified.
|
||||
|
||||
## Next steps
|
||||
|
||||
@@ -34,4 +34,4 @@ yoi-plugin-pdk = { git = "https://gitea.hareworks.net/Hare/yoi.git", package = "
|
||||
2. Replace `EchoInput` / `EchoOutput` and `handle_echo` with your Tool logic.
|
||||
3. Build the Rust component artifact for `wasm32-unknown-unknown`, replacing the placeholder `plugin.component.wasm`.
|
||||
4. Run `yoi plugin check .` and `yoi plugin pack . --output ./my-plugin.yoi-plugin`.
|
||||
5. Copy the package to a Plugin store and add explicit enablement with pinned digest/grants after review.
|
||||
5. Retain the package as an offline artifact. Yoi does not currently install or execute it.
|
||||
|
||||
Reference in New Issue
Block a user