43 lines
1.3 KiB
TOML
43 lines
1.3 KiB
TOML
schema_version = 1
|
|
id = "example.rust_service_plugin"
|
|
name = "Rust Service Plugin Template"
|
|
version = "0.1.0"
|
|
description = "Example Component Model Plugin with Tool and Service ingress handlers."
|
|
surfaces = ["tool", "service", "ingress"]
|
|
permissions = [
|
|
{ kind = "surface", surface = "tool" },
|
|
{ kind = "tool", name = "example_echo" },
|
|
{ kind = "surface", surface = "service" },
|
|
{ kind = "service", name = "example_service" },
|
|
{ kind = "surface", surface = "ingress" },
|
|
{ kind = "ingress", name = "example_ws" },
|
|
{ kind = "host_api", api = "websocket" },
|
|
]
|
|
|
|
[runtime]
|
|
kind = "wasm-component"
|
|
world = "yoi:plugin/instance@1.0.0"
|
|
component = "plugin.component.wasm"
|
|
|
|
[[tools]]
|
|
name = "example_echo"
|
|
description = "Echo input text through the shared Plugin instance."
|
|
input_schema = { type = "object" }
|
|
|
|
[[services]]
|
|
name = "example_service"
|
|
description = "Host-managed service instance for bounded ingress events."
|
|
lifecycle = "host-managed"
|
|
|
|
[[ingresses]]
|
|
name = "example_ws"
|
|
description = "Handles host-owned WebSocket text events and returns websocket_send output commands."
|
|
event_kinds = ["websocket_text"]
|
|
sources = ["websocket:wss://example.com/socket"]
|
|
input_schema = { type = "object" }
|
|
|
|
[[websocket]]
|
|
scheme = "wss"
|
|
host = "example.com"
|
|
path_prefixes = ["/socket"]
|