First Studio plugin in the new `studio.*` capability namespace.
SKELETON — does not yet compile.
Why ship the skeleton now:
* Pins Ethan Schoonover's Solarized palette as two const
Material 3 ColorScheme arrays so the in-tree reference
doesn't bike-shed at SDK-integration time.
* Gives the future fai-studio-plugin-sdk author a concrete
consumer to validate the generated `#[plugin(theme)]`
macro output against.
* Validates that the WIT in fai/platform parses by being a
real crate that references it.
What it does NOT yet do:
* Compile. The `fai-studio-plugin-sdk` dependency it points
at doesn't exist. Tracked in
`fai/platform/docs/advanced/studio-plugin-sdk.md`.
* Plug into Studio. The plugin-host module that would
discover and invoke this component lives in the same
deferred-Phase-1 work.
What it ships:
* module.yaml declaring `provides: studio.theme.solarized`
and `studio_extension.hooks: [theme]`.
* Cargo.toml with the future SDK dependency commented out,
crate-type=cdylib, component metadata.
* src/lib.rs with both Solarized colour palettes
(SOLARIZED_LIGHT and SOLARIZED_DARK), 14 ARGB tokens
each in Material 3 order, plus the future `#[plugin]`
function body commented out and two sanity tests on the
palette constants.
* README.md explaining the status and the steps to finish
the plugin once the SDK ships.
Signed-off-by: flemming-it <sf@flemming.it>
28 lines
891 B
YAML
28 lines
891 B
YAML
schema_version: 1
|
|
name: studio-theme-solarized
|
|
version: 0.1.0
|
|
|
|
# Capability provided by this plugin. Studio plugins live in
|
|
# the `studio.*` namespace; the host filters list_capabilities()
|
|
# on this prefix to find plugins to load.
|
|
provides:
|
|
- capability: studio.theme.solarized
|
|
version: 0.1.0
|
|
|
|
# No inputs / outputs — plugins are called via WIT exports,
|
|
# not via the flow-engine `invoke` path. These two sections
|
|
# stay empty so the hub's manifest validator doesn't trip.
|
|
inputs: {}
|
|
outputs: {}
|
|
|
|
# No permissions required. A theme plugin is pure data — two
|
|
# color schemes, no I/O.
|
|
permissions: []
|
|
|
|
# Studio-side extension declaration. Read by Studio's
|
|
# plugin-host at discovery time so it knows which WIT export
|
|
# interfaces to expect on this component. Must match what the
|
|
# crate actually exports; the hub rejects mismatches at install.
|
|
studio_extension:
|
|
hooks:
|
|
- theme
|