Brings module.yaml in line with F∆I 0.12.0's capability naming
convention. The legacy schema_version 1 (with implicit provider)
still loads in 0.12.0 via the grace-period default, but this
bump makes the publisher identity explicit and unblocks
storage-layout migration via 'fai migrate'.
See fai/platform docs/reference/capability-namespaces.yaml +
docs/operations/migration-to-0.12.md.
Signed-off-by: flemming-it <sf@flemming.it>
Three SDK families convention from
fai/platform/docs/architecture/sdks.md: base name carries
family, suffix carries language. This plugin now depends on
fai-plugin-sdk (was fai-studio-plugin-sdk) and moves to the
fai-plugins/ org on Forgejo.
Signed-off-by: flemming-it <sf@flemming.it>
Studio's Documentation section now populates from the bundle
instead of staying empty. Same content as the existing
README, trimmed for the in-app reader.
Signed-off-by: flemming-it <sf@flemming.it>
Promotes the skeleton to a real WASM plugin component. The
22 KiB stripped artefact at
target/wasm32-wasip2/release/studio_theme_solarized.wasm
is the proof-of-contract for fai-studio-plugin-sdk v0.1.
Implements:
- theme::Guest::theme_for(brightness) returning the
pinned Solarized Light/Dark palettes (14 ARGB tokens
each). Brightness names other than "light"/"dark"
return PluginError::Declined.
- translate::Guest + output_view::Guest as Declined-only
stubs — v0.1 of the SDK requires all three hooks per
plugin; v0.2 will split the WIT.
Cargo.toml pins edition 2021 (matches SDK; wit-bindgen
0.36 codegen does not yet support edition 2024).
Signed-off-by: flemming-it <sf@flemming.it>
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>