Implements Registry.PluginProvider against the Edge /registry HTTP endpoints.
Lives in app-framework (rather than the more obvious home of @dxos/edge-client)
because edge-client doesn't depend on app-framework; siting the implementation
here keeps the dependency arrow app-framework → edge-client and avoids a
cycle. The class needs only the public EdgeHttpClient type, so a one-way
type-import is enough.
listVersions is currently a stub: it returns the single latest version derived
from the cached plugin list, so the host's version picker has something to render.
The wire contract for the real endpoint already exists — see
GetPluginVersionsResponseBodySchema in @dxos/protocols/edge/registry and
EdgeHttpClient.getRegistryPluginVersions — so once Edge ships
GET /registry/plugins/:repo/versions, swap this stub for a call to
this._client.getRegistryPluginVersions(...) and map each entry through a
toRegistryPluginVersion helper (mirror of toRegistryPlugin).
Returns all known versions of a plugin identified by its GitHub repo slug.
Until the backend implements a versions endpoint, implementations MUST
return at least one entry representing the current/latest release.
Implements
Registry.PluginProvideragainst the Edge/registryHTTP endpoints.Lives in app-framework (rather than the more obvious home of
@dxos/edge-client) because edge-client doesn't depend on app-framework; siting the implementation here keeps the dependency arrowapp-framework → edge-clientand avoids a cycle. The class needs only the publicEdgeHttpClienttype, so a one-way type-import is enough.listVersionsis currently a stub: it returns the single latest version derived from the cached plugin list, so the host's version picker has something to render. The wire contract for the real endpoint already exists — seeGetPluginVersionsResponseBodySchemain@dxos/protocols/edge/registryand EdgeHttpClient.getRegistryPluginVersions — so once Edge shipsGET /registry/plugins/:repo/versions, swap this stub for a call tothis._client.getRegistryPluginVersions(...)and map each entry through atoRegistryPluginVersionhelper (mirror of toRegistryPlugin).